为什么 运行 .bat 文件通过 Task Scheduler 没有完全启动 .Jar 文件?
Why running .bat file thru Task Scheduler is not starting the .Jar file fully?
事情是这样的。我创建了一个包含 start javaw -jar BTG_Producer.jar
的 .Bat 文件 当我通过双击手动启动它时,它将在我的系统托盘中显示我的 java 程序并在 Windows 中显示进程 "javaw.exe *32"任务管理器。当我 运行 通过任务计划程序启动进程 "javaw.exe" 时没有 *32,并且不会在系统托盘中显示该程序。你们知道我做错了什么吗?
当您通过任务计划程序启动进程时,它的环境可能与您从桌面启动进程时的环境不同。要对此进行测试,您可以使用任务计划程序中的 /k
参数创建一个 运行s cmd
的任务。当你运行的时候,cmd会打开,然后你就可以运行set >%userprofile%\Desktop\environment1.txt
了。然后,像往常一样打开cmd,然后运行 set >%userprofile%\Desktop\environment2.txt
。并排打开这两个文件,然后进行比较。
在这种情况下,我怀疑您的 PATH 变量不同,这就是为什么 32 位 java 在一种情况下是 运行,而在另一种情况下是 64 位。
要解决此问题,您可以在批处理文件中明确指定 64 位 javaw.exe。
C:\path\to\javaw.exe
而不仅仅是 javaw
.
事情是这样的。我创建了一个包含 start javaw -jar BTG_Producer.jar
的 .Bat 文件 当我通过双击手动启动它时,它将在我的系统托盘中显示我的 java 程序并在 Windows 中显示进程 "javaw.exe *32"任务管理器。当我 运行 通过任务计划程序启动进程 "javaw.exe" 时没有 *32,并且不会在系统托盘中显示该程序。你们知道我做错了什么吗?
当您通过任务计划程序启动进程时,它的环境可能与您从桌面启动进程时的环境不同。要对此进行测试,您可以使用任务计划程序中的 /k
参数创建一个 运行s cmd
的任务。当你运行的时候,cmd会打开,然后你就可以运行set >%userprofile%\Desktop\environment1.txt
了。然后,像往常一样打开cmd,然后运行 set >%userprofile%\Desktop\environment2.txt
。并排打开这两个文件,然后进行比较。
在这种情况下,我怀疑您的 PATH 变量不同,这就是为什么 32 位 java 在一种情况下是 运行,而在另一种情况下是 64 位。
要解决此问题,您可以在批处理文件中明确指定 64 位 javaw.exe。
C:\path\to\javaw.exe
而不仅仅是 javaw
.