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