我正在使用
运行程序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。
答案 0 :(得分:2)
您没有看到所有输出,因为,有两个流程序可以写入:
printStream和errorStream
您需要阅读这两个内容才能获得程序输出的所有文本。
另请阅读Java.lang.Process.getErrorStream()