13

Я использую _JAVA_OPTIONS, чтобы установить некоторые значения по умолчанию для Java на RHEL. Это работает нормально, но теперь каждый раз, когда я запускаю Java, я получаю следующее сообщение

 Picked up _JAVA_OPTIONS: -foo -bar -baz

Можно ли сохранить параметры, но подавить отображение этого сообщения.

2 ответа2

10

Java часто вызывается с абсолютными путями, такими как /usr/bin/java , что делает этот ответ бесполезным в некоторых случаях и требует большего, чтобы заставить его работать в других.

Это решение, которое я нашел, требует написания сценария оболочки-оболочки, который перенаправляет STDERR через фильтр, удаляющий ошибочную строку. Он должен быть помещен в $PATH перед бинарным файлом java , который он переносит, и вызываться с простым Java , which java или аналогичным (или ваш инструмент должен быть настроен для его использования)

Он полагается на способность bash создавать подоболочку с круглыми скобками (command) и перенаправлять STDERR Java в его команду command1 2> >(command2) . Наконец, процесс в подоболочке должен снова перенаправить свой отфильтрованный ввод в STDOUT, чтобы Java-программы все еще могли использовать STDERR.

#!/bin/bash
/usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)
1

Или вы можете поместить это в свои файлы запуска / профиля оболочки:

_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS"
unset _JAVA_OPTIONS
alias java='java "$_SILENT_JAVA_OPTIONS"'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .