Pomijanie komunikatu „Pobrano _JAVA_OPTIONS”

13

Korzystam z _JAVA_OPTIONS, aby ustawić niektóre ustawienia domyślne Java na RHEL. Działa dobrze, ale teraz za każdym razem, gdy uruchamiam java, pojawia się następujący komunikat

 Picked up _JAVA_OPTIONS: -foo -bar -baz

czy można zachować opcje, ale ukryć wyświetlanie tego komunikatu?

latające owce
źródło

Odpowiedzi:

11

Java jest często wywoływana za pomocą ścieżek bezwzględnych /usr/bin/java, co sprawia, że ​​ta odpowiedź jest w niektórych przypadkach bezużyteczna i wymaga więcej, aby działała w innych.

To rozwiązanie, które znalazłem, wymaga napisania skryptu powłoki opakowania, który przekierowuje STDERR przez filtr usuwający linię obrażającą. To musi być umieszczony w $PATHprzed java binarnego owija i nazwać zwykłą java, which javalub podobne (lub narzędzie musi być skonfigurowany tak, aby go używać)

Opiera się na zdolności bash do utworzenia podpowłoki z nawiasami (command)i przekierowania STDERR Java do STDINcommand1 2> >(command2) . Wreszcie proces w podpowłoce musi ponownie przekierować filtrowane dane wejściowe do STDOUT, aby programy Java mogły nadal używać STDERR.

#!/bin/bash
/usr/bin/java "$@" 2> >(grep -v "^Picked up _JAVA_OPTIONS:" >&2)
latające owce
źródło
Prawdopodobnie okropna praktyka, ale dotyczy to obrazu dokera i zmęczyłem się tym całym czerwonym docker build- ale zmieniłem nazwę ${JAVA_HOME}/bin/javana java2i wstawiłem zmodyfikowaną wersję tego skryptu jako java(z chmod +x). Działa jak urok!
BrainSlugs83
2

Lub możesz umieścić to w swoich plikach startowych / profilach powłoki:

_SILENT_JAVA_OPTIONS="$_JAVA_OPTIONS"
unset _JAVA_OPTIONS
alias java='java "$_SILENT_JAVA_OPTIONS"'
spelufo
źródło
działa to tylko podczas bezpośredniego wywoływania java ...za pomocą wiersza poleceń. wszystkie wywołania java przez skrypty lub inne procesy nadrzędne pozostaną niezmienione
latające owce
cóż, możesz zmienić / bin / java na skrypt powłoki, który robi to samo, jeśli naprawdę chcesz.
spelufo,
nawet jeśli tego nie zrobisz, spowoduje to rozbrojenie opcji, więc wpłynie to również na inne polecenia. Uciszy ich, nie przekazując im żadnych opcji :).
spelufo,