Мне нужно было выполнить третью сторону класса java из сценария оболочки. Когда возникает исключение, они записывают сообщение об ошибке с помощью System.err по требованию. Теперь, когда я выполнил класс в оболочке, я хочу получить это сообщение об ошибке. Я не могу получить полное сообщение в стандартном выпуске и искать это сообщение как свой большой скрипт, и есть много сообщений. Есть ли способ захватить эту конкретную версию System.err в java, когда я ее выполнил в оболочке. "Просто дайте мне знать, если проблема недостаточно ясна.
Чтобы выбрать стандартную ошибку java-приложения (или любой другой программы, если на то пошло) в переменной при отбрасывании ее стандартного вывода, вы можете использовать эту конструкцию оболочки:
var=$(java MyApplication 2>&1 1>/dev/null)
Если вы не хотите отбрасывать стандартный вывод, вы можете перенаправить его в файл вместо /dev/null
или перенаправить его на эмулятор терминала с помощью /dev/tty
.
Пожалуйста, обратитесь к this-
Как напечатать сообщение об ошибке со стандартной ошибкой?
Я думаю, что лучший ответ на этот вопрос также отвечает на ваш вопрос.
2>error.out
, чтобы перенаправить stderr в файл с именемerror.out
.