如何在每天午夜时间从 PM 变为 Am 时自动 运行 一个 java 程序

how to automatically run a java program every day at midnight when time changes from PM to Am

我想 运行 我的程序每天午夜,当时间在两个日期之间从上午变为下午时,例如(从今天日期,即 22/01/2015 到 25/01/2015)。

有很多方法可以做到这一点

  • ScheduledExecutorService,内置 Java class 您可以使用它,它会在指定时间安排作业[=​​17=]
  • Quartz FW 是第 3 方 API 用于大规模调度
  • Cron 作业,在 linux 和 windows 批处理文件中你可以做到这一点
  • Autosys,作业调度程序

按照其他人的建议,如果可以,请使用 ScheduledExecutorService。

如果没有,启动一个线程 (Runnable or Thread),该线程 运行 是您的方法 m(检查日期和时间,如果时间从上午变为下午,则执行必要的操作)。睡几分钟,醒来,运行 m, ...让这个过程永远循环(或者想循环多久就循环多久)。如果您可以休眠所需的确切时间,那么当线程醒来时,您就知道已经从上午过渡到下午,那就更好了。例如,您的程序在上午 10:00 启动,那么您可以计算出从现在起 2 小时(120 分钟)后是下午。所以,只睡 120 分钟。醒来做上午到下午 activity 并睡 24 小时。

我非常推荐为此使用 CRON 作业,因为它可靠,并且内置于大多数 Linux 环境中,如果您是 运行 它的来源。