Если я запускаю процесс через класс Java ProcessBuilder , я получаю полный доступ к стандартным входным, стандартным и стандартным ошибочным потокам этого процесса, таким как Java InputStreams
и OutputStreams
. Тем не менее, я не могу найти способ бесшовного подключения этих потоков к System.in
, System.out
и System.err
.
Можно использовать redirectErrorStream()
, чтобы получить один InputStream
, который содержит стандартный вывод и стандартную ошибку подпроцесса, и просто выполнить цикл и отправить его через мой стандартный вывод, но я не могу найти способ сделать это и позволить пользователю ввести в процесс, как он или она могли бы, если бы я использовал вызов C system()
.
Это представляется возможным в Java SE 7, когда она выйдет - мне просто интересно, есть ли обходной путь сейчас. Бонусные баллы, если результат isatty()
в дочернем процессе проходит через перенаправление.