作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
从 Task Scheduler 运行批处理文件不能使用 .bat 文件中的 java 命令。如果我手动运行 .bat 文件,它工作正常。
这是我要安排的简单 .bat 文件
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_24;
set CMD= "%JAVA_HOME%\bin\java" -version
echo %CMD%
%CMD%
最佳答案
当您在命令行中键入 batchfile.bat
时,您是在告诉 cmd.exe
读取文件并执行它在其中找到的每一行。当您在资源管理器中双击您的批处理文件时,它会在读取注册表中的文件关联后为您调用 cmd.exe
。
任务管理器不是那么好。
因此,为了让您的任务正常运行,请像这样安排它(从内存中,而不是现在在 Windows 机器上):
cmd /c "c:\full\path\to\your\batchfile.bat"
为了额外的稳健性,您可以通过在顶部添加以下内容来确保批处理文件从已知目录(例如它所在的目录)运行:
pushd %~dp0
REM .... The original batch file goes here ....
popd
最后,您可以通过在 cmd
之后添加 /d
来禁用 CMD 自动运行条目,如下所示:
cmd /d /c "c:\full\path\to\your\batchfile.bat"
关于windows - 从任务计划程序运行批处理文件不适用于 java 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19304652/
我是一名优秀的程序员,十分优秀!