Можно ли передать вывод одного процесса, созданного ProcessBuilder, другому процессу, созданному другим ProcessBuilder? Например, если я пытаюсь выполнить эту команду оболочки:
ls | grep build.xml
как мне это сделать с помощью ProcessBuilder?
как предложил @erdinc, я попробовал следующее:
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);
, но результат отличается от того, когда я запускаю скрипт прямо в оболочке. Где я сделал не так?
Решено: см. Решение Филиппа Вендлера