java processbuilder / rt.exec вопросы - PullRequest
1 голос
/ 13 августа 2010

Допустим, у меня есть 2 отдельных приложения java: javaapp1 и javaapp2.
из javaapp1 я выполняю файл .bat (который отвечает за запуск javaapp2).

javaaap1 и javaapp2 не зависят друг от друга.

Предположим, я делаю это с помощью process.exec или processbuilder.

Теперь мой вопрос:

  1. Что означает exitCode в этом случае, если это не 0. Значит ли это, что что-то пошло не так при выполнении командного файла или в коде javaapp2? или оба?

  2. Можно ли регистрировать ошибки из javaapp2 в javaapp1? Если да, то как? Так как я не вызываю классы javaapp2 напрямую.

  3. Должны ли ошибки javaapp2 и выходные данные обрабатываться javaapp1?

1 Ответ

2 голосов
/ 13 августа 2010
  1. Код выхода будет тем, что другое Java-приложение вернуло при вызове System#exit(). Если вы выполняете его через файл bat, вам необходимо убедиться, что он правильно передает его обратно.

  2. Вы можете разрешить запись в stdout или stderr , тогда он будет доступен соответственно для Process#getInputStream() и Process#getErrorStream().

  3. Если он содержит код для правильной обработки результатов, указанных в 1) и 2), тогда да.

Статьи по теме:

...