Портирование Bash Script на Java - PullRequest
       14

Портирование Bash Script на Java

0 голосов
/ 22 сентября 2009

Я пытаюсь эмулировать функциональность приведенного ниже сценария оболочки bash с использованием объекта Process или ProcessBuilder в Java. Мне не на 100% ясно, как я делаю перенаправление для стандартного входа. Как мне это сделать?

#
#  Redirect shell echo command from standard output to file
#  This will construct the input file
# 
exec 1> $STDIN
echo -e "$NFILE\n$GFILE\n$INPUT\n$OUTPUT\n$CAX"
exec 1>&-

#
#  Run executable redirecting standard in as the input file and output to a log file
#
"$EXE" < $STDIN >& $LOG

1 Ответ

2 голосов
/ 22 сентября 2009

Потоки объектов Process имеют неверное название. Вам необходимо записать в OutputStream объекта Process.

Из документа:

Все его стандартные io (то есть стандартный, stdout, stderr) операции будут перенаправлен на родительский процесс через три потока (Process.getOutputStream (), Process.getInputStream (), Process.getErrorStream ()).

Вы также должны использовать выходные данные процесса и стандартную ошибку одновременно , иначе буферы заполнятся, и процесс заблокируется. См. здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...