.jar 文件不适用于 Windows 调度程序
Posted
技术标签:
【中文标题】.jar 文件不适用于 Windows 调度程序【英文标题】:.jar File Not Working With Windows Scheduler 【发布时间】:2013-08-17 14:09:12 【问题描述】:大家好,所以我用 java 编写了一个程序(使用 eclipse)并将单个类程序导出到 .jar 文件。该程序还启动一个批处理文件。当我双击 .jar 文件时,jar 完美运行并启动批处理文件。
但我想做的是让 .jar 文件每周运行一次,所以我使用 Windows 调度程序创建了一个任务,其操作是 .jar 文件。这没有用。然后我在某处读到 Windows 调度程序不喜欢 .jar,所以我想制作第二个批处理文件(start.bat)来启动 .jar,然后启动第一个批处理文件。
我的 start.bat 中的命令是
java -jar myJar.jar
当我双击 start.bat 文件时,一切正常。但是,当我设置 Windows 调度程序以启动此任务时,我收到以下有关 cmd 窗口的错误消息
错误:无法访问 jarfile myJar.jar
这真的让我很难过,因为所有文件都在同一个目录中。 任何帮助将不胜感激,谢谢。
【问题讨论】:
使用 myJar.jar 的完整路径而不是相对路径 - windows 调度程序的运行目录是 C:\Windows\System32 并且您的 jar 文件可能不在此目录中。跨度> 尝试在批处理文件中提供myJar.jar
的完整路径。
谢谢一百万,就是这样。愚蠢的错误,非常感谢!!
【参考方案1】:
显然这条评论就是答案:
使用 myJar.jar 的完整路径而不是相对路径 - windows 调度程序的运行目录是 C:\Windows\System32 并且您的 jar 文件可能不在此目录中。
【讨论】:
【参考方案2】:Task Scheduler 无法直接运行 .jar,您需要通过命令提示符运行它。 因为任务调度程序通过 cmd 运行 .bat,所以它的默认执行位置即 C:/windows/system32 我们需要更改路径。 在调度程序中调度任务时,调用 TaskName.bat 作为操作。 所以,
在TaskName.bat中创建一个批处理文件“TaskName.bat” 输入以下内容
@echo 关闭
cd "jar 文件路径示例 C:\MyFolder"
java -jar Nameofthejar.jar
暂停
【讨论】:
【参考方案3】:如果您按照以下步骤操作,您将不会遇到任何问题。
步骤 0:设置
在application.properties
中添加app.schedule.externally_managed=true
第 1 步:创建新任务
点击创建
提供详细信息
Windows 10 的配置很重要
第 2 步:触发器详细信息
第 3 步:操作详情
第 4 步:操作
确保所有复选框都未选中,如下所示,这很重要
第 5 步:查看任务详情
请参阅this 和this 了解更多详情
【讨论】:
以上是关于.jar 文件不适用于 Windows 调度程序的主要内容,如果未能解决你的问题,请参考以下文章
Prepared Statement 中的绑定不适用于 Microsoft SQL Server JDBC 驱动程序 sqljdbc4.jar