Próbuję wykonać zewnętrzne polecenie z kodu Java, ale zauważyłem różnicę między Runtime.getRuntime().exec(...)
i new ProcessBuilder(...).start()
.
Podczas używania Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
wartość exitValue wynosi 0, a polecenie zostało zakończone poprawnie.
Jednak z ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
wartość wyjścia to 1001, a polecenie kończy się w środku, chociaż waitFor
zwraca.
Co mam zrobić, aby rozwiązać problem ProcessBuilder
?