Onde posso definir opções globais de Java?

8

Eu tenho fontes horríveis e mal-processadas em programas Java, como jabref e rubymine . Isso pode ser corrigido executando

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

Eu entendo que eu poderia exportar essas opções Java como variáveis de ambiente e iniciar os programas a partir da linha de comando. No entanto, existe uma maneira de definir essas opções globalmente, para que todos os programas Java as reconheçam, independentemente de como são lançadas?

Também sei que posso modificar todos os arquivos *.desktop dos meus programas Java, mas estou procurando uma solução global.

Estou usando java-7-openjdk no Arch Linux. (FWIW isso costumava ficar bem com o agora quebrado jre7-openjdk-infinalidade sem cabeça instalado.)

    
por Sparhawk 23.08.2014 / 09:00

1 resposta

6

Você sabe como definir a variável em um shell, mas para o registro você pode escreva :

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

e todos os programas iniciados a partir desta sessão de shell depois disso terão a variável definida.

Se você quiser que ele seja definido para todos os shell que você iniciar depois, adicione essa linha a ~/.profile também. Nesse caso, ele será aplicado a todos os shells futuros que você iniciar, mas nenhum que esteja em execução no momento.

.profile geralmente funciona para a GUI, mas isso pode ser quebrado pela configuração do sistema e como você inicia as coisas. Esta é apenas a configuração por usuário.

Se você quiser definir para todos os usuários o tempo todo, você pode adicionar uma atribuição a /etc/environment . O formato é um pouco diferente: apenas KEY=VAL em linhas separadas, sem citações obrigatórias e nada mais.

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on

Isso é analisado pelo módulo pam_env . Existe também um arquivo ~/.pam_environment por usuário, que tem o mesmo efeito para apenas um usuário. Ambos exigem logout e back in para que a alteração tenha efeito. As variáveis serão definidas para cada sessão de login futura, tanto no console quanto no X.

Da mesma forma, você pode criar um arquivo em /etc/profile.d com um export declaração nele e será carregado em todas as sessões futuras por qualquer usuário. Provavelmente haverá alguns arquivos preexistentes para modelá-lo, mas apenas a linha export acima ficará bem.

Como alternativa, você pode adicionar a instrução export em ~/.xinitrc (se usar startx ), ~/.xsession ou ~/.xprofile . O KDE também suporta um diretório ~/.kde/env que pode conter quantos arquivos shell você quiser, que contêm export declarações como acima. Eu provavelmente preferiria uma das outras abordagens.

    
por 23.08.2014 / 09:18