我正在尝试从Java代码执行外部命令,但我注意到Runtime.getRuntime().exec(...)
和之间存在差异new ProcessBuilder(...).start()
。
使用时Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
exitValue为0,命令终止正常。
但是,使用ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
退出值为1001,尽管waitFor
返回,该命令在中间终止。
我该怎么办才能解决问题ProcessBuilder
?