让Java应用程序在一天内自动运行一次?

时间:2014-11-19 14:21:13

标签: java scheduled-tasks

我在java中做了一个提醒应用程序。我想只在下午12点运行该应用程序然后它生成一个邮件给客户端。生成邮件的事情已经完成,但现在的主要问题是如何使应用程序运行正好在每天下午12点......

4 个答案:

答案 0 :(得分:2)

使用cron(仅限Unix)

将此添加到您的cron标签

0 0 * * * /path/to/your/file.sh >/dev/null 2>&1

file.sh

#!/bin/sh
java com.package.YourMainClass

修改

在Windows 8上,请看一下:Using Task Scheduler in Windows 8

答案 1 :(得分:1)

您可以保持应用程序正常运行并自行安排。例如,使用Quartz

答案 2 :(得分:0)

如果您使用的是UNIX,则可以使用cron

答案 3 :(得分:0)

可以通过两种方式解决。 1.让操作系统每天使用cron或其他调度程序运行一次。

  1. 另一种方法是使用http://sourceforge.net/projects/yajsw/或其他服务包装帮助程序将程序安装为serice。
  2. 然后让你的程序在后台运行,每分钟都有一个计时器。什么时候,做任务。这很棒,因为您的程序也可以轻松接受其他触发器的配置。将其作为服务安装的优点是它将在系统启动时自动运行并在后台继续运行。确保捕获异常,记录它们但尝试继续运行,以便程序不会因可恢复和瞬态错误而退出。

    在这两种情况下,您将使用可选的UI程序创建一个非UI程序,该程序将写入java首选项API,以告知守护程序任何特定于用户的首选项。

    如果您不想安装一些不想将其作为服务安装的用户,也可以从命令行运行服务应用程序。

    对于计时器,可以看到How to set a timer in java