我试图从 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,命令终止 OK。
然而,对于 ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
出口值为1001,命令在中间终止,尽管 waitFor
返回。
我应该做什么来解决 ProcessBuilder
的问题?