抱歉英语(我不是母语人士),我想建立一个测试工作。这个工作可能只是显示一个简单的信息"测试工作"。我已经建立了课程,但我有一些我不太懂的错误。
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;
public class TestCrons {
public static void main(String[] args) {
// TODO Auto-generated method stub
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
job.setGroup(Scheduler.DEFAULT_GROUP);
CronTrigger trigger = new CronTrigger();
trigger.setName("dummyTriggerName");
trigger.setGroup(Scheduler.DEFAULT_GROUP);
try {
trigger.setCronExpression("0 0 11 18 * ?");
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
catch(Exception e)
{
System.out.println("erro :-p ");
e.printStackTrace();
}
}
}
这是我的HelloJob类
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job{
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("test job");
}
}
当我运行我的TestCrons类时,我有这个错误:
java.lang.NullPointerException
at org.quartz.CronTrigger.computeFirstFireTime(CronTrigger.java:1086)
at org.quartz.core.QuartzScheduler.scheduleJob(QuartzScheduler.java:569)
at org.quartz.impl.StdScheduler.scheduleJob(StdScheduler.java:221)
at sn.orange.test.TestCrons.main(TestCrons.java:30)
任何人都可以帮助我。
另一个问题,为什么我有applet在运行TestCrons类时要求我授权?
答案 0 :(得分:1)
如果您没有自己设置开始时间,则在使用CronTrigger的no-arg构造函数时会出现NullPointerException。
您需要调用setStartTime()或使用不同的构造函数。
答案 1 :(得分:0)
谢谢Plabo Gallego,我已经改变了构造函数。这是代码
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;
public class TestCrons {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
JobDetail job = new JobDetail(Scheduler.DEFAULT_GROUP,"dummyJobName",HelloJob.class);
CronTrigger trigger = new CronTrigger("TriggerGroup","dummyTriggerName","0 36 12 18 * ?");
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
catch(Exception e)
{
System.out.println("erro :-p ");
e.printStackTrace();
}
}
}