2012-03-03 16 views
9

Bir Process/ProcessBuilder ürününün çıktısını yeniden yönlendirmenin bir yolunu mu arıyorsunuz? Ben böyle Java 7 çalıştığını biliyorum:Java 5/6'da ProcessBuilder'ın Çıkışını Yönlendirme?

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

Ama Java 5/6 aynı ihtiyacım var ... Herhangi bir yardım son derece takdir. yöntem

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

Javadoc getOutputStream() için:

cevap

4

Örnek kod için Java 6ile çalışan Windows 7üzerinde sürecini cmd diyor "alt sürecin çıkış akışı alır Çıktı için. akış, bu İşlem nesnesi tarafından temsil edilen işlemin standart girdi akışına aktarılır. "

Bir işlemin çıktısını yeniden yönlendirmek için, yukarıdaki kodda tanımlanan stream nesnesini kullanabilirsiniz. Konsoluna yazabilirsiniz.

+1

hey deporter, hızlı cevap için çok teşekkürler. sadece process.getInputStream() kullanarak ve bir InputStreamReader içine koyarak mükemmel çalışıyor :-) – salocinx

+0

@NicolasBaumgardt ama yukarıdaki kodda, çıktı akışını kullandım, eğer girdi akışı istediğiniz veriyse, sorun değil. :) – Juvanis

+4

hm .. hedefim, oluşturduğum sürecin stdout'unu okumak ve javadoc diyor ki: "Akış, bu Process nesnesi tarafından temsil edilen işlemin standart çıktı akışından alınan verileri alır." javadoc bu durumda bana biraz garip geliyor ... – salocinx

İlgili konular