Sto cercando di eseguire un comando esterno da codice java, ma ho notato una differenza tra Runtime.getRuntime().exec(...)
e new ProcessBuilder(...).start()
.
Quando si utilizza Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
exitValue è 0 e il comando è terminato ok.
Tuttavia, con ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
il valore di uscita è 1001 e il comando termina a metà, sebbene waitFor
ritorni.
Cosa devo fare per risolvere il problema ProcessBuilder
?