当前位置: 首页 > 知识库问答 >
问题:

在任务调度程序中使用 Java 程序执行 bat 失败

那存
2023-03-14

我有以下脚本,如果手动执行,它可以正常工作,但如果在任务计划程序中设置为任务,则不起作用,我怀疑这是一个未正确设置的参数,但我希望有人可以帮助我解决这个谜语

html prettyprint-override">@echo off
setlocal EnableDelayedExpansion 

cls

set AllSections=
Set Action=

rem set PARMS=-Xms64M -Xmx512M -Dfile.encoding=UTF-8 -Dsikuli.FromCommandLine
rem set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202
rem set SIKULIX_HOME=%~dp0

set CurrentDate=%Date%
set CurrentTime=%Time: =0%
set CurrentTime=%CurrentTime:~0,8%
set DateTimeStamp=%CurrentDate:~6,4%-%CurrentDate:~3,2%-%CurrentDate:~0,2%_%CurrentTime:~0,2%-%CurrentTime:~3,2%-%CurrentTime:~6,2%
set FolderTimeStamp=%CurrentDate:~3,2%-%CurrentDate:~6,4%

set DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%

md DestinationFolder=SCADA\Output > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp% > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp% > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%\Settings > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%\Alarms > nul 2>&1
md DestinationFolder=SCADA\Output\%FolderTimeStamp%\%DateTimeStamp%\Network > nul 2>&1


rem Create Settings file


rem echo "Hello world" > %cd%\aa.txt

rem \\\--below instructions working as script from command prompt , but not from task scheduler

C:\sikulix\sikulixapi-2.0.5-win.jar -r C:\sikulix\Scada\Settings.sikuli
C:\sikulix\sikulixapi-2.0.5-win.jar -r C:\sikulix\Scada\Alarms.sikuli
C:\sikulix\sikulixapi-2.0.5-win.jar -r C:\sikulix\Scada\Networks.sikuli
rem /////


ENDLOCAL
:End

我强调了不工作的那一点,文件夹设置正确,但是java部分无法在任务调度器中执行,但是正如我所说的,手动是没问题的。谢谢你的时间

共有1个答案

郎吉星
2023-03-14

您使用的启动器取决于文件扩展名为< code >的Windows。jar映射到特定的JVM。在我的电脑上有一个< code >。双击jar文件或输入< code>some.jar someparams将会用7Zip打开jar,而不是启动Java应用程序。

重新编写脚本以使用有效的Java运行时,如< code > % Java _ HOME %/bin/Java ,或者检查任务计划程序帐户是否映射了< code >。jar处理到合适的JVM。

在Windows资源管理器中,可以使用鼠标右键检查映射-

 类似资料:
  • 我在64位Windows Server 2008 R2上设置了一个简单的批处理文件。我试图将其设置为在Windows任务调度程序下运行,将管理员帐户指定为用户。当使用相同的管理帐户登录到服务器时,我可以手动运行批处理文件。但是,在任务计划程序中,任务只是运行和挂起。下面是批处理文件中的代码,将文件从管理员帐户可以访问的映射驱动器中移动:

  • 我有一个简单的批处理脚本,它从文件夹中复制文件,然后将这些文件移动到另一个文件夹。我设置了一个任务调度程序,工作正常。但是如果另一个任务在上一个任务结束之前运行cmd,它将与复制/移动文件作业混淆。无论如何,我们可以设置任务计划程序,下一个任务将“仅在上一个任务结束时”运行? 这是我目前设置的屏幕截图https://i.imgur.com/DTcKj9t.png

  • 错误:任务“:app:processDebugManifest”的执行失败。 清单合并失败:属性元数据#android。支持VERSION@value值=(25.3.1)来自[com.android.support:appcompat-v7:25.3.1]AndroidManifest。xml:27:9-31也出现在[com.android.support:recyclerview-v7:26.0

  • 我是android studio的新手,正在制作一个简单的天气应用程序。我编写了代码,但仍然出现以下错误: 任务': app: dexDebug'执行失败。 通用域名格式。Android石斑鱼类。常见的过程ProcessException:org。格拉德尔。过程内部的ExecException:进程'command'/usr/lib/jvm/java-7-openjdk-amd64/bin/jav

  • 这是我的Gradle档案 消息gradle构建后运行项目这个错误 错误:任务“:app:dexDebug”的执行失败。 通用域名格式。Android石斑鱼类。常见的过程ProcessException:org。格拉德尔。过程内部的ExecException:进程“命令”C:\Program Files\Java\jdk1。7.0_80\bin\java。exe“”已完成,退出值为非零2

  • 出了什么问题:任务'执行失败:app: check DebugAarMetadata'。 执行com时发生故障。Android建筑格雷德尔。内部的任务。checkAARMataWorkAction依赖项的AAR元数据(META-INF/com/android/build/gradle/AAR metadata.properties)中指定的minCompileSdk(31)大于此模块的compil