Java Runtime exec不执行批处理脚本

时间:2015-03-16 18:38:56

标签: java batch-file runtime.exec

我有一个位于C:\app\stuff\dostuff.bat的批处理文件,它根据您提供的参数对文件系统执行操作。当我打开一个命令行,并像这样运行它时,它完全正常:

C:\app\stuff\dostuff.bat zombies

就像我说的,这个调用工作得很好(并正确处理zombies arg)。但是,我现在正试图从Java应用程序中驱动dostuff.bat的执行,如下所示:

try {
    Process process = Runtime.getRuntime().exec("C:\\app\\stuff\\dostuff.bat zombies");
    process.waitFor();
} catch (IOException|InterruptedException e) {
    logger.error(ExceptionUtils.getFullStackTrace(e));
}

当我运行它时,我没有例外,但是显然没有正确执行批处理脚本(我可以告诉它,因为批处理脚本接触的其余文件系统不会得到修改它应该)。 我是否错误地调用了这个?我是否需要对分叉过程执行某些操作?我该怎么调试?

1 个答案:

答案 0 :(得分:1)

尝试如下

Process process = Runtime.getRuntime().exec("cmd /c start C:\\app\\stuff\\dostuff.bat zombies");