我正在尝试从 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
?