ฉันกำลังพยายามเรียกใช้คำสั่งภายนอกจากรหัส java แต่มีความแตกต่างที่ฉันสังเกตเห็นระหว่างRuntime.getRuntime().exec(...)
และnew ProcessBuilder(...).start()
.
เมื่อใช้Runtime
:
Process p = Runtime.getRuntime().exec(installation_path +
uninstall_path +
uninstall_command +
uninstall_arguments);
p.waitFor();
exitValue คือ 0 และคำสั่งถูกยกเลิกตกลง
อย่างไรก็ตามด้วยProcessBuilder
:
Process p = (new ProcessBuilder(installation_path +
uninstall_path +
uninstall_command,
uninstall_arguments)).start();
p.waitFor();
ค่าออกคือ 1001 และคำสั่งจะสิ้นสุดตรงกลางแม้ว่าจะwaitFor
ส่งคืน
สิ่งที่ฉันควรทำอย่างไรเพื่อแก้ไขปัญหาด้วยProcessBuilder
?