我正在尝试使用 Process InputStream 上的 BufferedReader 将 Psexec 的输出读入 Java,以便在网络上使用,但它只输出第一行。
Runtime rt = Runtime.getRuntime();
try {
Process p = rt.exec("C:\\Users\\*****\\Desktop\\PS\\Psexec \\\\" + "******" + " -u ****** -p ****** cmd /c dir D:\\");
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
log.add("Computer: " + address);
String s = null;
while ((s = stdInput.readLine()) != null) {
log.add(s);
}
} catch (IOException e) {
e.printStackTrace();
}
发生这种情况的原因是什么?如何解决?
最佳答案
该进程可能会在 stderr 上生成一些输出。
在单独的线程中读取输出流和错误流,或者使用 ProcessBuilder
创建在此之前处理
并合并输出流,使用 redirectErrorStream() .
关于java - 运行时进程 BufferedReader 未输出所有行 (Psexec),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25374966/