Java Runtime.getRuntime()。exec.getInputStream丢失内容

时间:2016-10-06 11:09:49

标签: java

我正在使用

运行程序
Process p = Runtime.getRuntime().exec("myprogram.exe");
InputStream inp = p.getInputStream();
while(true) {
        char in = 0;
    if(inp.available()>0) {
        in = (char) inp.read();
        System.out.print(Character.valueOf(in));
    }
}

现在我的问题是这个myprogram.exe输出了很多调试消息而Java丢失了一些内容(我用cmd.exe启动相同的cmd行我看到了预期的内容) 有什么我可以做的事情,如增加缓冲区大小。 我已经检查过内容是否来自ErrorStream。

1 个答案:

答案 0 :(得分:2)

您没有看到所有输出,因为,有两个流程序可以写入:

printStream和errorStream

您需要阅读这两个内容才能获得程序输出的所有文本。

另请阅读Java.lang.Process.getErrorStream()

中的错误内容