Java Runtime exec 未执行批处理脚本
Java Runtime exec not executing batch script
我有一个位于 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));
}
当我 运行 这样做时,我没有发现任何异常,但是 显然 没有正确执行批处理脚本(我可以说这是因为文件的其余部分批处理脚本接触的系统没有像它应该的那样被修改)。 我是不是调用错了?我需要对分叉进程做些什么吗?我该如何调试?
尝试如下
Process process = Runtime.getRuntime().exec("cmd /c start C:\app\stuff\dostuff.bat zombies");
我有一个位于 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));
}
当我 运行 这样做时,我没有发现任何异常,但是 显然 没有正确执行批处理脚本(我可以说这是因为文件的其余部分批处理脚本接触的系统没有像它应该的那样被修改)。 我是不是调用错了?我需要对分叉进程做些什么吗?我该如何调试?
尝试如下
Process process = Runtime.getRuntime().exec("cmd /c start C:\app\stuff\dostuff.bat zombies");