Soppressione del messaggio "Raccolto _JAVA_OPTIONS"


13

Sto usando _JAVA_OPTIONS per impostare alcune impostazioni predefinite per Java su RHEL. Funziona bene ma ora ogni volta che avvio java ricevo il seguente messaggio

 Picked up _JAVA_OPTIONS: -foo -bar -baz

è possibile mantenere le opzioni ma eliminare la visualizzazione di questo messaggio.

Risposte:


11

Java viene spesso chiamato con percorsi assoluti come /usr/bin/java, il che rende questa risposta inutile in alcuni casi e richiede di più per farlo funzionare in altri.

Quella soluzione che ho trovato richiede la scrittura di uno script shell wrapper che reindirizza STDERR attraverso un filtro rimuovendo la linea offensiva. Essa deve essere collocato nella $PATHprima che il java binario che avvolge ed essere chiamato con la pianura java, which javao simile (o il vostro strumento deve essere configurato per usarlo)

Si basa sulla capacità di bash di creare una subshell con parentesi (command)e reindirizzare lo STDERR di java al suo STDIN command1 2> >(command2). Infine, il processo nella subshell deve reindirizzare nuovamente l'input filtrato su STDOUT in modo che i programmi java possano ancora utilizzare STDERR.

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

Probabilmente terribile pratica, ma è per un'immagine uno scaricatore di porto e mi sono stancato di tutto il rosso durante docker build- ma ho rinominato ${JAVA_HOME}/bin/javaper java2e mettere una versione modificata di questo script in là java(con chmod +x). Ha funzionato come un fascino!
BrainSlugs83,

2

Oppure puoi inserirlo nei file di avvio / profilo della shell:

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

funziona solo quando si richiama direttamente java ...dalla riga di comando. tutte le invocazioni di java tramite script o altri processi genitore non saranno influenzate
volare pecore il

bene, puoi cambiare / bin / java in uno script di shell che fa la stessa cosa se lo desideri davvero.
spelufo,

anche se non lo fai disattiverà le opzioni, quindi anche altri comandi saranno interessati. Li silenzierà non passando loro alcuna opzione :).
spelufo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.