Tôi đang cố gắng thực thi một lệnh bên ngoài từ mã java, nhưng có một sự khác biệt mà tôi nhận thấy giữa Runtime.getRuntime().exec(...)
và new ProcessBuilder(...).start()
.
Khi sử dụng Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
exitValue là 0 và lệnh được kết thúc là ok.
Tuy nhiên, với ProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
giá trị thoát là 1001 và lệnh kết thúc ở giữa, mặc dù waitFor
trả về.
Tôi nên làm gì để khắc phục sự cố với ProcessBuilder
?