【问题标题】:Cron job for a Java ProgramJava 程序的 Cron 作业
【发布时间】:2011-12-12 22:18:24
【问题描述】:

我正在使用一个 java 程序,它在完成一些文件传输后发送电子邮件。我正在使用 Eclipse 来编写程序。如何设置 cron 作业以在特定时间执行此 java 程序。我在项目中有各种 jar 文件。请推荐

【问题讨论】:

  • 您使用 eclipse 的事实和您有几个相关的 jar 的事实如何?如果您知道如何使用 java -cp ... your.full.ClassName 启动您的应用程序,那么只需像为任何其他进程所做的那样设置一个 cron 作业。
  • 您是指在一个持续运行的程序中的一个作业,还是使用一个操作系统的 cron 作业来启动该程序?
  • @JB 如果他不知道如何运行他的程序将 jars 放在类路径上而不单击 eclipse 中的“运行”按钮,这很重要......
  • 正如@JBNizet 指出的那样,这里的问题是要知道如何从命令行运行 Java 程序。
  • 好的。我可以同意。那他为什么不问:如何启动Java程序?无论如何(对于 OP),请阅读基础知识:download.oracle.com/javase/tutorial/getStarted/index.htmldownload.oracle.com/javase/7/docs/technotes/tools/windows/…

标签: java eclipse jar cron


【解决方案1】:
  • 编写一个 shell 脚本来调用你的 java 程序 论据。
  • 确保 classpath 参数指向您需要的 jar。
  • 确保 shell 脚本有必要的 unix 权限。
  • 通过设置 cron 来安排要调用的脚本 工作。

有关 cronjob 的更多信息请看这里http://en.wikipedia.org/wiki/Cron

只有我的 2 美分...

【讨论】:

    【解决方案2】:

    r0ast3d 有一个快速、明确的答案 - 我确实需要进行更多搜索才能完成每个步骤,因此我将详细说明他的步骤:

    1. 编写一个 shell 脚本以使用必要的参数调用您的 java 程序。 示例:

      !/bin/bash
      echo "Running script."
      cd ~/your/classpath/to/java
      java -classpath .:somejar.jar path/to/your/Program
      

      用冒号 (:) 而不是分号 (;) 分隔必要的类路径 您的程序的路径应该以您的包开头(在 java 程序的顶部找到它)

    2. 确保类路径参数指向您需要的 jar。 您可以检查您的 java 程序中的 import 语句,以确保您指定了所有必要的类路径。您必须从您的 java 目录运行此脚本,并且可以使用单个句点 (.) 作为您的第一个类路径参数。

    3. 确保 shell 脚本具有必要的 unix 权限。

      从终端运行:sudo chmod ### yourScript.sh

      其中### 是代表系统设置正确权限的数字。

    4. 通过设置 cron 作业来安排要调用的脚本。

      从终端运行:crontab -e

      这将打开您的 crontab 编辑器。您可以通过这种方式添加作业:

      */5 * * * * bash /home/scripts/yourScript.sh

      将脚本的路径替换为脚本的正确位置。此作业设置为每 5 分钟运行一次。请参阅 http://www.adminschoice.com/crontab-quick-reference/ 以获得有关 crontab 的良好参考。

    希望这对某人有所帮助!

    【讨论】:

      【解决方案3】:

      quartz 用于更复杂的需求,Timer 用于更简单的任务

      【讨论】:

        【解决方案4】:

        有 cron4j 库 http://www.sauronsoftware.it/projects/cron4j/。我以前用它来安排一个java程序每周运行一次。调度语法与 crontab 相同。问题是,它需要作为后台进程不断运行才能工作。我最终只使用了普通的 cron,但如果您不在类 Unix 系统上并且没有 cron,它可能会很有用。

        【讨论】:

          猜你喜欢
          • 2010-11-19
          • 2018-02-21
          • 2014-11-11
          • 2017-04-02
          • 1970-01-01
          • 1970-01-01
          • 2013-12-19
          • 1970-01-01
          • 2013-11-25
          相关资源
          最近更新 更多