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ù waitFortrả về.
Tôi nên làm gì để khắc phục sự cố với ProcessBuilder?