繁体   English   中英

从Java运行时执行批处理文件时,本机DOS命令无法运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM