Я намагаюся виконати зовнішню команду з коду 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
?