Java Работа с дочерним процессом
У меня есть простой script, который записывает вывод на консоль с помощью ProcessBuilder
. И OutputStreamWriter
см.:
Процесс Java с потоком ввода/вывода
Предыдущий поток. Я считаю, что моя проблема связана с тем, что подпроцесс порожден и начальный процесс родителей убит. Результат в OutputStreamWriter
, чтобы выбросить java.io.IOException: Broken pipe exception
. Учитывая, что приложение порождает второй процесс, как я могу подключить свой OutputStreamWriter к этому новому процессу? Включая возможность считывать вывод, который он генерирует? Возможно ли это на Java? Уверенная java должна уметь следовать за порожденным процессом.
Спасибо
Ответы
Ответ 1
Вы вызываете waitFor() в процессе, в котором работаете? Это должно гарантировать, что вы родитель не закончите перед ребенком. Вы также можете посмотреть commons exec, который представляет собой библиотеку с открытым исходным кодом, предназначенную для облегчения вашей жизни при запуске отдельных процессов на Java.