Suprimindo a mensagem "Pegadas _JAVA_OPTIONS"


13

Estou usando _JAVA_OPTIONS para definir alguns padrões para Java no RHEL. Funciona bem, mas agora, toda vez que inicio o java, recebo a seguinte mensagem

 Picked up _JAVA_OPTIONS: -foo -bar -baz

é possível manter as opções, mas suprimir a exibição desta mensagem.

Respostas:


11

O Java geralmente é chamado com caminhos absolutos /usr/bin/java, o que torna essa resposta inútil em alguns casos e requer mais para fazê-la funcionar em outros.

Essa solução que encontrei requer a criação de um script de shell wrapper que redirecione o STDERR através de um filtro, removendo a linha incorreta. Tem que ser colocado no $PATHantes do java binário que envolve e ser chamado com planície java, which javaou similar (ou sua ferramenta tem de ser configurado para usá-lo)

Ele conta com a capacidade do bash de criar um subshell com parênteses (command)e redirecionar o STDERR do java para o seu STDIN command1 2> >(command2). Finalmente, o processo no subshell precisa redirecionar sua entrada filtrada para STDOUT novamente, para que os programas java ainda possam usar STDERR.

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

Provavelmente prática terrível, mas é para a imagem uma janela de encaixe e eu tenho cansado de toda a vermelho durante o docker build- mas eu renomeado ${JAVA_HOME}/bin/javapara java2e colocar uma versão modificada desse script lá como java(com chmod +x). Funcionou como um encanto!
— BrainSlugs83

2

Ou você pode colocar isso nos arquivos de inicialização / perfil do shell:

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

isso só funciona quando invocado diretamente java ...através da linha de comando. todas as invocações java através de scripts ou outros processos pai não será afetada
— voando ovelhas

bem, você pode alterar / bin / java para ser um script de shell que faz a mesma coisa se você realmente quiser.
— Spelufo

mesmo que não o faça, as opções serão desabilitadas, portanto outros comandos também serão afetados. Ele irá silenciá-los, não lhes dando opções :).
— Spelufo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.