java quartz cron schedule错误

时间:2014-12-18 11:23:06

标签: java cron quartz-scheduler

抱歉英语(我不是母语人士),我想建立一个测试工作。这个工作可能只是显示一个简单的信息"测试工作"。我已经建立了课程,但我有一些我不太懂的错误。

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类时要求我授权?

2 个答案:

答案 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();
          }
          }

    }