Разница между ProcessBuilder и Runtime.exec ()

Я пытаюсь выполнить внешнюю команду из 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 ?

93
задан Naman 14 October 2019 в 09:36
поделиться