#java #linux #shell
#java #linux #оболочка
Вопрос:
Может кто-нибудь сказать мне, как получить отчет о состоянии из сценария оболочки в код Java. Пример использования: я запускаю сценарий оболочки из кода Java, и если я получаю какую-либо ошибку в сценарии оболочки (во время выполнения), мне нужно отправить какое-либо сообщение из сценария оболочки в мой Java-код.
Итак, как я могу этого добиться.
Ответ №1:
Я уверен, что есть лучший способ, но простой способ сделать это — вывести сообщение об ошибке канала сценария оболочки в файл, который затем считывается приложением Java.
Комментарии:
1. : D. хороший … Я тоже так думал. но это действительно плохой способ сделать это …. если решение не найдено, тогда я должен следовать этому пути.
Ответ №2:
Я предполагаю, что вы используете ProcessBuilder для запуска вашего сценария оболочки.
Как только вы создадите процесс, вы можете использовать getInputStream(), который предоставит вам выходной поток из сценария оболочки, а затем просто скопируйте поток туда, куда вы хотите перейти.
Также есть вывод перенаправления, но у меня ограниченный опыт его использования. Я предполагаю, что он делает то, что я описал выше.
Ответ №3:
Вы можете использовать что-то вроде этого:
Process proc = Runtime.getRuntime().exec("ls -la")
// To get the error code (0=success)
int outCode = proc.exitValue()
Если вам нужно отправить что-то из сценария в приложение, выполняющее его, вы можете сделать это, записав stdErr
в сценарий и используя proc.getErrorStream
в своей программе Java.