我想將java進程輸出重定向到父進程的標準輸出。ProcessBuilder重定向到標準輸出
使用的ProcessBuilder類,如下所示:
public static void main(String[] args) {
ProcessBuilder processBuilder = new ProcessBuilder("cmd");
processBuilder.directory(new File("C:"));
processBuilder.redirectErrorStream(true); // redirect error stream to output stream
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
}
我本來預計, 「CMD」,這是一樣的輸出:
的Microsoft Windows [版本6.1.7601] 版權所有(C )2009年微軟公司。 Tous droitsréservés。
顯示在用於運行java程序的DOS控制檯中。 但是在DOS控制檯中什麼也沒有顯示。
在討論的其他討論中,我看到了使用BufferedReader類的解決方案:但是在這裏,我希望過程的輸出直接顯示在標準輸出中,而不使用任何BufferedReader或「while reading loop」。可能嗎?
謝謝。
看看爲你需要的方法的系統類的API:'放樣(...)','SETIN(...)','setErr (...)'。 – 2013-04-21 18:47:11
這應該工作。我不明白爲什麼它不會。 – Qix 2013-07-23 13:24:21