2012-03-03 48 views
9

我正在尋找一種方法來重定向Process/ProcessBuilder的輸出?我知道,它工作在Java 7中是這樣的:在Java 5/6中重定向ProcessBuilder的輸出?

ProcessBuilder builder = new ProcessBuilder(command); 
builder.redirectOutput(); 
Process process = builder.start(); 

但我需要的Java 5/6同...任何幫助高度讚賞。

回答

4

示例代碼在cmd進程的Windows 7,與使用的Java 6

ProcessBuilder processBuilder = new ProcessBuilder("cmd");   
Process process = processBuilder.start(); 
OutputStream stream = process.getOutputStream(); 

的Javadoc getOutputStream()方法:說 「獲得子進程的輸出流輸出到。該流將被傳送到由此Process對象表示的進程的標準輸入流中。「

要重定向一個進程的輸出,我認爲你可以使用上面代碼中定義的stream對象。你可以寫到控制檯等。

+1

嘿驅逐出境者,非常感謝您的快速回復。只需使用process.getInputStream()並將其放入InputStreamReader中即可:完美:-) – salocinx 2012-03-03 22:45:16

+0

@NicolasBaumgardt歡迎您。但在上面的代碼中,我使用了outputstream,如果inputstream是你想要的數據,沒有問題使用它。 :) – Juvanis 2012-03-03 22:52:47

+4

hm ..我的目標是讀出我構建的過程的標準輸出,並且javadoc說:「流獲取從此Process對象表示的過程的標準輸出流中傳輸的數據。」在這種情況下,javadoc對我來說有點奇怪... – salocinx 2012-03-03 23:10:02