我正在寻找在Windows控制台上打印输出和错误流的解决方案。
由于命令行,java程序启动rcp应用程序(.exe):
Runtime.getRuntime.exec("example.exe");
Example.exe在启动后写入内容... 然后我希望java程序获取example.exe的输出流。
我的问题是它不起作用,如果我把2 eclipse运行时选项:-console
和-consoleLog
,输出流打印在另一个控制台中,所以我无法取回流...
有什么想法吗?
编辑:这是我获取outputStream和errorStream的代码(它适用于简单的java程序,但不适用于rcp应用程序)
final Process process = Runtime.getRuntime().exec("toto.exe");
new Thread() {
public void run() {
try {
BufferedReader inputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
BufferedReader errorReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
String line = "";
try {
while((line = inputReader.readLine()) != null) {
inputText = inputText + line;
}
System.out.println(inputText);
while((line = errorReader.readLine()) != null) {
errorText = errorText + line;
}
System.out.println(errorText);
} finally {
errorReader.close();
inputReader.close();
}
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
}.start();