Ich versuche, einen externen Befehl aus Java-Code auszuführen, aber es gibt einen Unterschied zwischen Runtime.getRuntime().exec(...)
und new ProcessBuilder(...).start()
.
Bei Verwendung von Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
Der exitValue ist 0 und der Befehl wird ok beendet.
Mit ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
Der Exit-Wert ist 1001 und der Befehl endet in der Mitte, obwohl er waitFor
zurückkehrt.
Was soll ich tun, um das Problem zu beheben ProcessBuilder
?