“Picked up _JAVA_OPTIONS”메시지 억제 자바를 시작할

RHEL에서 Java의 일부 기본값을 설정하기 위해 _JAVA_OPTIONS를 사용하고 있습니다. 그것은 잘 작동하지만 이제는 자바를 시작할 때마다 다음 메시지가 나타납니다.

 Picked up _JAVA_OPTIONS: -foo -bar -baz

옵션은 유지할 수 있지만이 메시지는 표시되지 않습니다.



답변

Java는 종종와 같은 절대 경로로 호출 /usr/bin/java되기 때문에 경우에 따라이 답변을 쓸모 없게 만들고 다른 경우에는 더 많은 것을 요구합니다.

내가 찾은 솔루션은 문제를 일으키는 줄을 제거하는 필터를 통해 STDERR을 리디렉션하는 래퍼 쉘 스크립트를 작성해야합니다. 그것은에 위치하는 $PATH이 랩과 일반 호출 할 자바 바이너리 전에 java, which java(그것을 사용하거나 도구를 구성해야합니다) 또는 이와 유사한

괄호로 서브 쉘을 작성하고 (command)java의 STDERR을 STDIN으로 경로 재지 정하는 bash 기능에 의존합니다 command1 2> >(command2). 마지막으로, 서브 쉘의 프로세스는 필터링 된 입력을 STDOUT으로 다시 경로 재지 정해야 Java 프로그램이 여전히 STDERR을 사용할 수 있습니다.

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

답변

또는 이것을 쉘 시작 / 프로파일 파일에 넣을 수 있습니다.

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