Ответ 1
В этом случае вам не нужна труба.
"grep bla test.txt"
однако, полагая, что вам нужен канал, вам нужно использовать оболочку типа bash
"/bin/bash", "-c", "grep foo text.txt | grep bar"
Я пытался выяснить, как подключить несколько процессов в Java, используя новый ProcessBuilder
. Я не могу найти подходящий пример того, что я хочу делать, и когда я пытаюсь сделать это сам, процесс просто зависает. Я хотел бы получить очень простой пример некоторого кода, который выполняет эквивалент cat test.txt | wc
, но не через оболочку.
- Update -
ОК, просто для уточнения. Я знаю, что есть способы имитировать канал, читая и записывая потоки. Мне интересно, если это сделать в автоматическом режиме с помощью методов redirectInput и redirectOutput в Java 7.
В этом случае вам не нужна труба.
"grep bla test.txt"
однако, полагая, что вам нужен канал, вам нужно использовать оболочку типа bash
"/bin/bash", "-c", "grep foo text.txt | grep bar"
Запустите дочерний поток для каждой пары Input-
/OutputStream
с простым циклом копирования в run()
.