2012-03-03 3 views
9

Sto cercando un modo per reindirizzare l'output di un Process/ProcessBuilder? So che funziona in Java 7 in questo modo:Reindirizzamento dell'output di ProcessBuilder in Java 5/6?

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

Ma ho bisogno lo stesso per Java 5/6 ... Qualsiasi aiuto molto apprezzato.

risposta

4

Codice di esempio per cmd processo su Windows 7, lavorando con Java 6:

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

Javadoc per getOutputStream() metodo: dice "Ottiene il flusso di uscita del sottoprocesso Output. lo stream viene reindirizzato nello stream di input standard del processo rappresentato da questo oggetto Process. "

Per reindirizzare l'output di un processo, penso che sia possibile utilizzare l'oggetto stream definito nel codice sopra. Puoi scriverlo su console ecc.

+1

hey deporter, molte grazie per la rapida risposta. semplicemente usando process.getInputStream() e inserendolo in un InputStreamReader funziona perfettamente :-) – salocinx

+0

@NicolasBaumgardt Siete i benvenuti. ma nel codice precedente ho usato outputstream, se inputstream è il dato che vuoi, nessun problema lo uso. :) – Juvanis

+4

hm .. il mio obiettivo è leggere lo stdout del processo che ho creato e javadoc dice: "Lo stream ottiene i dati inviati dal flusso di output standard del processo rappresentato da questo oggetto Process." javadoc è un po 'strano per me in questo caso ... – salocinx