ProcessBuilder tarafından oluşturulan bir işlemin çıktısını başka bir ProcessBuilder tarafından oluşturulan başka bir işleme iletmek mümkün mü? Örneğin, ben bu kabuk komutu çalıştırmak çalışıyorum eğer:başka bir ProcessBuilder ürününe bağlanması
ls | grep build.xml
Ben ProcessBuilder, bunu nasıl
?
Process process = Runtime.getRuntime().exec("ls");
InputStream is = process.getInputStream();
byte[] buf = new byte[1000];
is.read(buf);
String parameter = new String(buf);
System.out.println("grep build " + parameter);
Process proc2 = Runtime.getRuntime().exec("grep build " + parameter);
InputStream is2 = proc2.getInputStream();
byte[] buf2 = new byte[1000];
is2.read(buf2);
String result = new String(buf2);
System.out.println("proc2 result: " + result);
ama farklı sonuç ben kabuğunda doğrudan komut dosyası çalıştırdığınızda karşılaştırmak üretir: @erdinc önerildiği gibi
, bu çalıştı. Nerede yanlış yaptım? Çözüldü
: olarak parametre ikinci Süreci geçmesi daha Sen getInputStream yöntemi kullanabilirsiniz Philipp Wendler çözümü
çözümünüz çalışıyor! teşekkür ederim Philipp: D Aslında bu kodu chasen ve moses (makine çeviri araçları) gibi birkaç harici uygulamayı çağırmak için kullanacağım. Ls | grep örneği sadece soruları basitleştirmek için yapılmıştı, ancak öneri için teşekkürler: D Çözülen soruyu işaretleyeceğim ve çözümünüzü üstleneceğim. – ndriks