如何每天从Java运行任务?

如何每天从Java运行任务?,java,timer,jdk1.4,Java,Timer,Jdk1.4,如何使用java.util.Timer在指定的时间(比如上午11:00)每天运行任务?我使用的是JDK 1.4.2,我知道它很旧,但这正是项目所需要的。查看TimerTask和Timer-这两个版本都在JDK中 Timer : public void schedule(TimerTask task, Date firstTime, long period) public void scheduleAtFixedRate(TimerTask task, Date firstTime, long p

如何使用
java.util.Timer
在指定的时间(比如上午11:00)每天运行任务?我使用的是JDK 1.4.2,我知道它很旧,但这正是项目所需要的。

查看TimerTask和Timer-这两个版本都在JDK中

Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

将其设置为以您想要的第一个日期运行,然后以一天中的毫秒数作为延迟。

您是否可以使用以下库?这将使你的工作更容易

您必须使用

但我从来都不知道谁首先推出了石英

如果您有一个应用服务器或类似的工件,您可以在那里配置Quartz作业,并让它在给定的时间运行您的任务

  • Java计时器可以按间隔、预先固定的时间等运行任意作业
  • 图书馆
  • 如果您真的想对它一目了然,可以将它包装在一个shell脚本中并放入cron中

也许,最近的那篇文章可以帮助你:

我对这个问题的回答是使用基于java.util.Time和java.util.TimerTask类的java内置实现:

或者,您可以将crontab服务用于*nix平台(也可用于Windows平台)。这是定期运行独立作业的最简单、最轻量级的方式

[]的


过去的Quartz是Java环境中最著名的进程调度解决方案,但您有很多选择。请勾选此列表:

是一个开源作业调度系统,可以与任何J2EE或J2SE应用程序集成,或与之一起使用。Quartz可用于创建简单或复杂的明细表

设计用于扩展和集成任何项目。在文件、数据库或EJB中读取并存储要执行的任务,并提供web UI和基本swing GUI

是一种用于J2EE应用程序的简单任务调度机制。这个库可以看作是标准JavaAPI中计时器和TimerTask类的包装器。要执行的任务的配置及其频率基于XML

是Java 2平台的调度器,与UNIX cron守护程序非常相似

的目标是为将企业关键业务流程联系在一起的所有批处理文件和cron作业提供一定的顺序和可见性

提供计划程序服务。它是基于涡轮机提供的涡轮机调度程序,但所有旧的东西都已被移除。目前只有非持久性调度程序完成。它从组件配置xml文件加载计划作业

-面向目标的Java调度-是一种基于目标组织处理优先级的方法

是一个作为demon运行的批处理程序,可以使用图形用户界面进行控制。作业调度器对计划的程序、脚本以及任务处理的时间和频率使用XML配置。可以使用API将事件控制和日志记录交给作业

是一个轻量级Java调度库,它简单而小巧,但仍然支持以指定的时间间隔发出警报,作为一次性事件,或在具有完全cron控制的复杂调度上发出警报

是用Java编写的批处理作业假脱机程序。与Cron等时间驱动的调度器相比,jBatchEngine是事件驱动的

是一个开源的轻量级框架,设计用于在Java语言中创建易于健壮和管理的批处理程序

是一个Java作业调度器,具有适用于所有应用程序的丰富GUI。它是平台中性的。特别适合作为Linux和Solaris的作业调度器。它提供了Microsoft Windows调度程序的一组超级功能。它提供事件触发的调度。它可以在分布式环境中调度任务。任务将在网络中的所有机器中执行一次且仅执行一次。所有任务都可以调整。即使每个作业都是备用作业,历史记录也将是重要任务的良好跟踪。它支持国际化


来源:

这似乎是一种可能性,取决于是否允许使用该库。第二,这一建议——cron4j是一种乐趣,它的工作方式就像一个符咒,比quartz简单得多(quartz也很有效,它非常大,通常比您真正需要的要多;对于更简单的用例,它有一些纠结)石英有很多奇特的特性,所以如果您的要求很详细,它可能是一个不错的选择。但如果你有一个简单的“每天5点把它关掉”,我就用定时器。