Построение конвейера процесса с помощью ProcessBuilder в Java 7

Я пытался выяснить, как передать несколько процессов в Java с помощью нового ProcessBuilder. Я не могу найти подходящий пример того, что я хочу сделать, и когда я пытаюсь сделать это сам, процесс просто зависает. Я был бы признателен за очень простой пример кода, который запускает эквивалент cat test.txt | wc, но не через оболочку.

- Update -

Хорошо, просто чтобы уточнить. Я знаю, что есть способы симулировать канал, читая и записывая потоки. Мне интересно, если это сделано каким-то автоматическим способом с помощью redirectInput и redirectOutput методы, представленные в Java 7.

7 голосов | спросил Aleksandar Savkov 23 32011vEurope/Moscow11bEurope/MoscowWed, 23 Nov 2011 17:41:01 +0400 2011, 17:41:01

2 ответа


0

В этом случае вам не нужна труба.

"grep bla test.txt"

однако при условии, что вам нужен канал, вам нужно использовать оболочку вроде bash

"/bin/bash", "-c", "grep foo text.txt | grep bar"
ответил Peter Lawrey 23 32011vEurope/Moscow11bEurope/MoscowWed, 23 Nov 2011 17:48:53 +0400 2011, 17:48:53
0

Запустите дочерний поток для каждого Input- /OutputStream пара с простым циклом копирования в run().

ответил Aaron Digulla 23 32011vEurope/Moscow11bEurope/MoscowWed, 23 Nov 2011 17:49:18 +0400 2011, 17:49:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132