Unterdrücken der Nachricht "Abgeholte _JAVA_OPTIONS"

13870
flying sheep

Ich verwende _JAVA_OPTIONS, um einige Standardeinstellungen für Java auf RHEL festzulegen. Es funktioniert gut, aber jetzt, wenn ich Java starte, erhalte ich die folgende Meldung

 Picked up _JAVA_OPTIONS: -foo -bar -baz 

Ist es möglich, die Optionen beizubehalten, aber die Anzeige dieser Nachricht zu unterdrücken.

13

2 Antworten auf die Frage

10
flying sheep

Java wird oft mit absoluten Pfaden wie aufgerufen /usr/bin/java, was diese Antwort in manchen Fällen unbrauchbar macht und mehr erfordert, damit sie in anderen funktioniert.

Diese Lösung, die ich gefunden habe, erfordert das Schreiben eines Wrapper-Shell-Skripts, das STDERR durch einen Filter umleitet, der die betreffende Zeile entfernt. Es hat in der platziert werden, $PATHbevor die Java binäre es wickelt und mit einfachen genannt werden java,which java oder ähnlich (oder dem Werkzeug muss konfiguriert werden, um es zu verwenden)

Es basiert auf der bash-Fähigkeit, eine Subshell mit Klammern zu erstellen und javas (command)STDERR auf seine STDIN umzuleiten command1 2> >(command2). Schließlich muss der Prozess in der Subshell seine gefilterten Eingaben erneut an STDOUT umleiten, damit Java-Programme STDERR weiterhin verwenden können.

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

Oder Sie können dies in Ihre Shell-Startup- / Profildateien einfügen:

_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS" unset _JAVA_OPTIONS alias java='java "$_SILENT_JAVA_OPTIONS"' 
das funktioniert nur, wenn `java 'direkt über die Befehlszeile aufgerufen wird. Alle Java-Aufrufe über Skripts oder andere übergeordnete Prozesse sind davon nicht betroffen flying sheep vor 8 Jahren 0
Nun, Sie können / bin / java ändern, um ein Shell-Skript zu sein, das dasselbe tut, wenn Sie wirklich wollen. spelufo vor 8 Jahren 0
Selbst wenn Sie dies nicht tun, werden die Optionen deaktiviert, sodass auch andere Befehle betroffen sind. Es wird sie zum Schweigen bringen, indem sie keine Optionen weitergibt :). spelufo vor 8 Jahren 0