[英]When executing batch file from Java Runtime, native DOS commands fail to run
当我直接在DOS中执行批处理文件时,一切都按预期运行。 但是当我从Java runTime执行批处理文件时,它只会运行调用jar文件的命令(即调用JVM)。 它不运行任何本地DOS命令。
一个问题是我没有控制台知道为什么会这样。 我想知道这是否是权限问题,但我不知道。 以前有人看过这个吗?
使用的Java代码看起来像这样:
调用Runtime.getRuntime()EXEC( “C:\\ targetFolder \\ myBatch.bat”);。 //(为简单而在这里编辑。)
批处理文件看起来像这样(注意我已简化它):
myBatch.bat:
叫java myJar.jar等等等等等等
copy outputFile.out outputFile.bak --- NO
mkdir testDir ---没有
叫java myJar.jar等等等等等等
打电话给someOther.bat --- NO
---是的行运行正常,我看到了预期的结果
---没有线路不运行,但我不知道为什么不b / c没有控制台告诉我。
谢谢你的帮助!! 麦克风
您必须运行Windows命令处理器(shell),并将批处理文件作为参数。
Runtime.getRuntime().exec( "cmd.exe /C c:\\targetFolder\\myBatch.bat" );
第二个java调用执行的事实表明所有的NO行仍在执行,但只是没有显示任何输出。 你有没有试过打开通过回声
@ECHO ON
在你的第一行?
其次,您的问题可能是错误的工作目录。 像这样指定工作目录
Runtime.getRuntime().exec("c:\targetFolder\myBatch.bat",null,"c:\targetFolder");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.