【发布时间】:2025-12-27 22:10:16
【问题描述】:
Process process = Runtime.getRuntime().exec("tasklist");
BufferedReader reader =
new BufferedReader(new InputStreamReader(process.getInputStream()));
process.waitFor();
【问题讨论】:
-
请注意,在 JAVA 8 上有一个 waitFor 重载,让您指定指定超时。这可能是避免 waitFor 永远不会返回的情况的更好选择。
-
在我的情况下,我在读取输出流之前添加了 waitFor() 并导致死锁情况。
if(!process.waitFor(15, TimeUnit.MINUTES)) { process.destroy(); } else { process.getOutputStream().close(); BufferedReader stdout = new BufferedReader(new InputStreamReader(process.getInputStream()));
标签: java runtime.exec