2012-03-03 10 views
9

Szukam sposobu przekierowania wyjścia Process/ProcessBuilder? Wiem, że działa w Javie 7 tak:Przekierowanie wyjścia ProcessBuilder w Javie 5/6?

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

Ale ja potrzebuję tego samego dla Javy 5/6 ... Każda pomoc bardzo ceniona.

Odpowiedz

4

Przykładowy kod cmd proces na Windows 7, współpracując z Java 6:

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

Javadoc dla getOutputStream() metoda: mówi „Pobiera strumień wyjściowy podproces wyjście do. strumień jest przesyłany strumieniowo do standardowego strumienia wejściowego procesu reprezentowanego przez ten obiekt Process. "

Aby przekierować wyjście procesu, myślę, że można użyć obiektu stream zdefiniowanego w powyższym kodzie. Możesz napisać to na konsoli itp.

+1

Hej deportatorze, wielkie dzięki za szybką odpowiedź. wystarczy użyć process.getInputStream() i wstawienie go do InputStreamReader działa idealnie :-) – salocinx

+0

@NicolasBaumgardt Nie ma za co. ale w powyższym kodzie użyłem strumienia wyjściowego, jeśli inputstream to dane, które chcesz, nie ma problemu z jego użyciem. :) – Juvanis

+4

hm ... moim celem jest odczytanie stdouta procesu, który buduję, a javadoc mówi: "Strumień pobiera dane wyprowadzane ze standardowego strumienia wyjściowego procesu reprezentowanego przez ten obiekt Process." javadoc jest dla mnie trochę dziwny w tym przypadku ... – salocinx

Powiązane problemy