我是Java Quartz调度的新手,一直在尝试从youtube教程中运行一个简单的Crystal程序。
这是我尝试的代码:
public class drive1 {
public static void main(String[] args) throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(Job.class).build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow();
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
scheduler.scheduleJob(jobDetail, trigger);
}
}
这继续使我在第4行出现编译错误:
Type mismatch: cannot convert from TriggerBuilder<Trigger> to Trigger
所以我尝试在第4行显式键入类型转换:
Trigger trigger = (Trigger)TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow();
这消除了编译错误,但是现在我遇到了运行时异常:
Exception in thread "main" java.lang.ClassCastException: org.quartz.TriggerBuilder cannot be cast to org.quartz.Trigger
at sd.moc.drive1.main(drive1.java:18)
有人可以帮我吗。
我知道这是一个菜鸟问题,但是我对此并不陌生。
最佳答案
我相信您需要“构建”触发器。所以你需要改变
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow();
至
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("SimpleTrigger").startNow().build();