代码之家  ›  专栏  ›  技术社区  ›  ant

编写一个每小时执行的Java代码(石英)

  •  0
  • ant  · 技术社区  · 15 年前

    有人能纠正我吗,我在网上发现了这个例子,还有很多人不工作,这个特定的例子抛出了以下错误:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections/SetUtils
        at org.quartz.JobDetail.<init>(JobDetail.java:85)
        at tralala.org.xml.CronSchedule.<init>(CronSchedule.java:13)
        at tralala.org.xml.CronSchedule.main(CronSchedule.java:20)
    

    代码如下:

    爪哇爪哇

    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    public class CronJob implements Job {
      public void execute(JobExecutionContext arg0) throws JobExecutionException {
        System.out.println("PRINT SOME TEXT LINE");
      }
    }
    

    cronschedule.java软件

    import org.quartz.CronTrigger;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerFactory;
    import org.quartz.impl.StdSchedulerFactory;
    import org.quartz.JobDetail;
    
    public class CronSchedule {
      public CronSchedule ()throws Exception {
        SchedulerFactory sf=new StdSchedulerFactory();
        Scheduler sched=sf.getScheduler();
        JobDetail jd=new JobDetail("job1","group1",CronJob.class);
        CronTrigger ct=new CronTrigger("cronTrigger","group2","0 0/1 * * * ?");
        sched.scheduleJob(jd,ct);
        sched.start();
      }
      public static void main(String args[]){
        try{    
            new CronSchedule();
        }catch(Exception e){}
      }
    }
    

    我只想跑(实际上是可行的)任何石英的例子。我已经搜索了一段时间,每个示例要么有编译错误,要么像这样(很少有)抛出一个错误。我只想跑这个或任何一个……只是想通过一个具体的例子了解一些内部情况。我一直在读书 http://www.opensymphony.com/quartz/wikidocs/TutorialLesson1.html ,示例不编译..有什么建议吗?TNX

    4 回复  |  直到 15 年前
        1
  •  2
  •   Alberto Zaccagni    15 年前

    将包含setutils类的库添加到类路径。
    你可以找到它 here .

        2
  •  3
  •   NawaMan    15 年前

    错误仅仅表明您的类路径中没有类org.apache.commons.collections.setutils。所以你应该确保。您可以从下载库 here .

    然后提取下载文件。您应该看到一个文件commons-collections-3.2.1.jar。您只需将该文件放在类路径中。或者使用选项“-cp commons-collections-3.2.1.jar”运行它。

        3
  •  1
  •   Richard Kettelerij    15 年前

    你应该增加 commons-collections (v3.1)到您的类路径。它也捆绑在石英分布中。

        4
  •  1
  •   fvu    15 年前

    如果您从Quartz发行档案中捆绑的示例开始,可能会容易得多。他们在 examples 子目录和每个示例都有一个脚本来运行它(当然,还有基于Ant的编译脚本)。研究这些脚本,看看它们是如何结合在一起的。由于Quartz与所有需要的依赖项捆绑在一起,因此您应该能够运行示例,而无需下载任何内容。