Я пытаюсь выполнить внешнюю команду из кода Java, но я заметил разницу между Runtime.getRuntime().exec(...)
и new ProcessBuilder(...).start()
.
При использовании Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
значение выхода равно 0, и команда завершена нормально.
Однако с ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
значение выхода равно 1001, и команда завершается посередине, хотя waitFor
возвращает.
Что я должен сделать, чтобы исправить проблему с ProcessBuilder
?