【问题标题】:Windows Task Scheduler Program Ends ImmediatelyWindows 任务计划程序程序立即结束
【发布时间】:2018-01-27 17:52:27
【问题描述】:

我有一个 Java 可执行文件 (.exe),在同一文件夹中具有给定的 JRE 构建,它用于实际运行。

我想将此可执行文件放在 Windows 任务计划程序中。

我用一些 C++ hello world 程序做了一些测试,一切都很好。这个 Java 程序,直接运行(通过两次单击或其他方式)也可以正常运行(它应该写入文件并结束)。

但是,当我将 Java 程序放入 Task Scheduler 时,它立即退出,状态码为 0x0(成功),实际上没有执行任何操作。

在 Windows 任务管理器中,我瞥见 javaw.exe 启动和退出。

可能是什么?与Java有关的东西?由于特定任务计划程序标志的原因?

附加

  • 使用launch4j 构建的Java 可执行文件。
  • 调度程序设置为schtasks /create /tn MyETL /sc hourly /mo 3 /tr C:\ETL\etl.exe

【问题讨论】:

  • 您尝试从调度程序运行的命令行是什么?
  • 可能是在任务调度程序进程中没有设置诸如 CLASSPATH 环境变量之类的依赖项,或者是试图查找 JAR 文件的 PATH 问题。
  • @UsagiMiyamoto 更新问题
  • @selbie 本身不是 jar,我将 java 应用程序捆绑到可执行文件 .exe
  • 构建一个命令文件来调用你的 exe 并让命令将输出重定向到一个文件。然后调度命令文件。然后输出文件应该提供一些见解

标签: java windows scheduled-tasks


【解决方案1】:

当您使用 Windows Scheduler 运行应用程序时,如果该应用程序通过相对路径依赖于其他文件,则您需要为该任务设置 start in 设置。这设置了执行开始的路径。

或者,您可以使用命令文件并使其首先导航到正确的目录。

【讨论】:

  • 谢谢,这节省了一天的时间。
【解决方案2】:

刚刚发现问题在于程序实际上是在错误的文件夹中执行的,以便输出文件不在我认为的位置。

输出文件被写入起始文件夹,而不是程序文件夹。

【讨论】:

    猜你喜欢
    • 2023-04-07
    • 2012-03-26
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 2021-03-29
    • 2012-08-30
    • 1970-01-01
    相关资源
    最近更新 更多