如何创建Java cron作业

如何创建Java cron作业,java,cron,Java,Cron,我正在编写一个独立的批处理Java应用程序来从YouTube读取数据。我想设置一个cron作业,每小时做一次特定的作业 我搜索并找到了为基本操作而不是Java应用程序执行cron作业的方法。如果您使用的是unix,则需要先编写一个shell脚本来运行Java批处理 之后,在unix中,您可以运行以下命令“crontab-e”来编辑crontab脚本。 要配置crontab,请参阅本文 保存crontab设置。然后等待时间的到来,程序将自动运行 首先,我建议你在开始一件新事情之前一定要先参考一下

我正在编写一个独立的批处理Java应用程序来从YouTube读取数据。我想设置一个cron作业,每小时做一次特定的作业


我搜索并找到了为基本操作而不是Java应用程序执行cron作业的方法。

如果您使用的是unix,则需要先编写一个shell脚本来运行Java批处理

之后,在unix中,您可以运行以下命令“
crontab-e
”来编辑crontab脚本。 要配置crontab,请参阅本文


保存crontab设置。然后等待时间的到来,程序将自动运行

首先,我建议你在开始一件新事情之前一定要先参考一下

我们有
SchedulerFactory
,它根据给定的Cron表达式调度作业

    //Create instance of factory
    SchedulerFactory schedulerFactory=new StdSchedulerFactory();

    //Get schedular
    Scheduler scheduler= schedulerFactory.getScheduler();

    //Create JobDetail object specifying which Job you want to execute
    JobDetail jobDetail=new JobDetail("myJobClass","myJob1",MyJob.class);

    //Associate Trigger to the Job
    CronTrigger trigger=new CronTrigger("cronTrigger","myJob1","0 0/1 * * * ?");

    //Pass JobDetail and trigger dependencies to schedular
    scheduler.scheduleJob(jobDetail,trigger);

    //Start schedular
    scheduler.start();
MyJob.class

public class MyJob implements Job{

      @Override
      public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
                 System.out.println("My Logic");
        }

    }

您可以将TimerTask用于Cronjobs

Main.java

public class Main{
   public static void main(String[] args){

     Timer t = new Timer();
     MyTask mTask = new MyTask();
     // This task is scheduled to run every 10 seconds

     t.scheduleAtFixedRate(mTask, 0, 10000);
   }

}
class MyTask extends TimerTask{

   public MyTask(){
     //Some stuffs
   }

   @Override
   public void run() {
     System.out.println("Hi see you after 10 seconds");
   }

}
MyTask.java

public class Main{
   public static void main(String[] args){

     Timer t = new Timer();
     MyTask mTask = new MyTask();
     // This task is scheduled to run every 10 seconds

     t.scheduleAtFixedRate(mTask, 0, 10000);
   }

}
class MyTask extends TimerTask{

   public MyTask(){
     //Some stuffs
   }

   @Override
   public void run() {
     System.out.println("Hi see you after 10 seconds");
   }

}
备选方案
您也可以使用。

我已经试过了。但这并没有提供在Cron中运行Java程序的解决方案。@user3138111:为什么不呢?你加了哪一行?如何:
0****java-cp yourpath SomeClass
@hourly java-cp yourpath SomeClass
我创建了一个helloworld java类来将一个文件写入一个文件。但我无法看到生成的输出文件。这是我的cron作业文本1****java-cp HelloWorld。HelloWorld类包含以下文本PrintWriter out=new PrintWriter(new FileWriter(“/output.txt”,true));out.println(“Ram”);out.close();创建一个temp.sh文件。在temp.sh中,编写脚本来运行java程序。例如:
$JAVA\u HOME/JAVA-cp helloworld
。然后在crontab中,配置
002temp.sh>/dev/null 2>&1
。此配置使系统每天两点钟运行temp.sh您的“文档”引用了第三方库。。。OP询问如何设置cron作业来启动java程序。您似乎是在代码中设置作业。您是在问如何使用Unix cron吗?如果您只是想要一种让Java应用程序周期性工作的方法,请参阅。这个内置Java类将根据您指定的频率运行给定的。这种方法包含在Java中,不需要像
cron
这样的外部实用程序。。