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

时间:2009-10-15 11:01:34

标签: java javadoc quartz-scheduler

有人可以纠正我,我在网上找到了这个例子,其他一些人没有工作,这个特殊的例子引发了以下错误:

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)

以下是代码:

CronJob.java

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 个答案:

答案 0 :(得分:3)

错误只显示您的类路径中没有类org.apache.commons.collections.SetUtils。所以你应该确保这一点。您可以从here下载该库。

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

答案 1 :(得分:2)

将包含SetUtils类的库添加到类路径中 你可以找到它here

答案 2 :(得分:1)

您应该将commons-collections(v3.1)添加到类路径中。它也捆绑在Quartz发行版中。

答案 3 :(得分:1)

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