java在使用Quartz时无法创建JobDetail接口的实例
这是我第一次使用石英。我正在试用一个打印“Hello World”的样本程序。但当我试着运行它时,我得到一个错误
Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - org.quartz.JobDetail is abstract; cannot be instantiated at QuartzAppSimpleTrigger.main(QuartzAppSimpleTrigger.java:18)
当我在Netbeans中试用它时,它要求我实现JobDetail的所有抽象方法。 下面是我的代码示例
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class HelloSchedule {
public HelloSchedule() throws Exception {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
sched.start();
JobDetail jd = new JobDetail("myjob", sched.DEFAULT_GROUP, HelloJob.class);
SimpleTrigger st = new SimpleTrigger("mytrigger", sched.DEFAULT_GROUP, new Date(),
null, SimpleTrigger.REPEAT_INDEFINITELY, 60L * 1000L);
sched.scheduleJob(jd, st);
}
public static void main(String args[]) {
try {
new HelloSchedule();
} catch (Exception e) {
}
}
}
还有HelloJob。java是
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.Date;
public class HelloJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException{
System.out.println("Hello World Quartz Scheduler: " + new Date());
}
}
# 1 楼答案
您使用的石英版本不对^Quartz 1.x中的{}类被重构为
JobDetail
接口,使用Quartz 2.x中的org.quartz.impl.JobDetailImpl
实现您应该更换石英2。x和石英1。在类路径上使用x或更好地使用新2。x API