基于Java的跨平台作业调度

基于Java的跨平台作业调度,java,scheduled-tasks,Java,Scheduled Tasks,我有一个java应用程序(jar文件),我想在其中添加一些调度选项。这意味着应用程序将为用户提供在用户自己定义的时间间隔内自动执行特定作业的能力。我正在考虑从命令行(通过Java代码)调用调度程序,例如在Windows中使用“AT”命令,在基于UNIX的系统中使用Anacron命令 问题的第一部分是关于Windows中的“AT”命令: 我曾尝试直接从命令行使用“AT”命令,但似乎无法使其正常工作。作业将作为计划任务列出,但当时间流逝时,该任务不会执行。(我试图运行的任务是一个jar文件,当我在没

我有一个java应用程序(jar文件),我想在其中添加一些调度选项。这意味着应用程序将为用户提供在用户自己定义的时间间隔内自动执行特定作业的能力。我正在考虑从命令行(通过Java代码)调用调度程序,例如在Windows中使用“AT”命令,在基于UNIX的系统中使用Anacron命令

问题的第一部分是关于Windows中的“AT”命令:

我曾尝试直接从命令行使用“AT”命令,但似乎无法使其正常工作。作业将作为计划任务列出,但当时间流逝时,该任务不会执行。(我试图运行的任务是一个jar文件,当我在没有调度的情况下从命令行运行它时,它运行得非常正常。)有人能指出我可能做错了什么吗?我提供的命令如下:

'在XX:XX java-jar C:..\xyz.jar',其中XX:XX是我想要运行它的时间

问题的第二部分是关于此类功能的任何其他不同实现:


我对想法持开放态度,因此,如果有不同的方法实现这样的功能,请不要犹豫提及。实现必须是跨平台的,如果可能的话,还必须是免费的。

实际上只是对问题的第二部分的回答,但您可能想看看


您还可以使用支持Quartz的Spring之类的框架来进一步简化和理解其用法。

实际上只是对问题第二部分的回答,但您可能想看一下


您还可以潜在地使用支持Quartz的Spring之类的框架来进一步简化和理解其用法。

您需要检查“任务调度器”服务是否已启动并将完整路径添加到java

您需要检查“任务调度器”服务是否已启动并将完整路径添加到java

我在标记和(windows命令)在问题中…有什么问题吗?我建议改为使用Quartz库,正如@Jim所说的。对此表示抱歉。我现在删除了跨平台标记:)我在标记中看到跨平台,在问题中的(windows命令)处。。。有什么问题吗?我会像@Jim所说的那样推荐石英图书馆。对此我很抱歉。我现在删除了跨平台标签:)是的,嵌入quartz更好,意味着部署应用程序更容易——因为不需要外部操作系统相关配置。谢谢。我遇到了它,但我认为实现相当复杂。我将更详细地查看它。我已经编辑了答案,其中包含了一个与Spring一起使用Spring的链接,您可能需要考虑在某些情况下更容易地进行定义和调度,吉姆,非常感谢!是的,嵌入quartz更好,这意味着部署应用程序更容易,因为不需要外部操作系统相关配置。谢谢。我遇到了它,但我认为实现相当复杂。我将更详细地查看它。我已经编辑了答案,其中包含了一个与Spring一起使用Spring的链接,您可能需要考虑在某些情况下更容易地进行定义和调度,吉姆,非常感谢!Task Scheduler正在运行,因为我已经检查了它,并且我正在为jar文件提供完整路径(绝对路径)。您需要提供java cmd的完整路径,例如在XX:XX c:\xxx\bin\javaTask Scheduler正在运行,因为我已经检查了它,并且我正在为jar文件提供完整路径(绝对路径)。您需要提供java cmd的完整路径,例如在XX:XX c:\xxx\bin\java