我正在使用我的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可能是解决方案吗?如果是这样你可以请给我一个示例代码。提前致谢
答案 0 :(得分:2)
进程有.getErrorStream()
或者您可以使用MadProgrammer的评论和此SO问题中提到的ProcessBuilder的.redirectErrorStream()
:
Java Process with Input/Output Stream