【发布时间】:2013-03-30 09:45:32
【问题描述】:
我正在使用我的 java 程序中的 Processbuilder 作为后台进程运行一个 c++ 程序(makefile)。我正在使用 .getInputStream 捕获在我的 cmd 提示符中显示的值并显示在我的控制台 (IDE) 中。
input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
try {
while((line=input.readLine()) != null) {
System.out.println(line);
这很好用。假设如果我在我的一个 c++ 文件中犯了一些错误,并且当我尝试运行 makefile 时,它没有捕获错误消息。在使用“cmd.exe”、“start”时,我可以在 cmd 提示符中查看错误,但它没有显示在控制台(IDE)中。
请问我应该怎么做才能显示错误消息。
1) System.err 和 printstream 可以解决这个问题吗?如果可以的话,请给我看一段代码示例。提前致谢
【问题讨论】:
-
感谢 MadProgrammer。
-
如果它是一个错误,我可以通过你提到的 redirectError 得到它。我可以通过.getInputStream 获得输出。如果我在后台运行 exe,它的处理不会被错误流或输入流捕获。我怎样才能得到它?
-
如果使用redirectError,错误输出会被重定向到InputStream。尝试单独读取每个字符,而不是使用 BufferedReader#readLine
-
试试看this example
标签: java outputstream system.out bytearrayoutputstream printstream