¿Dónde puedo configurar las opciones globales de Java?

10

Tengo fuentes horribles mal representadas en programas Java como jabrefy rubymine. Esto se puede solucionar ejecutando

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

Entiendo que podría exportar estas opciones de Java como variables de entorno e iniciar los programas desde la línea de comandos. Sin embargo, ¿hay alguna manera de establecer estas opciones a nivel mundial, de modo que todos los programas Java las reconozcan, sin importar cómo se inicien?

También sé que podría modificar todos los *.desktoparchivos de mis programas Java, pero estoy buscando una solución global.

Estoy usando java-7-openjdken Arch Linux. (FWIW esto solía estar bien con la ahora rota jre7-openjdk-headless-infinality instalada).

Gavilán
fuente
Para mí, solo funciona si inicio la aplicación desde la terminal, si uso el iniciador de aplicaciones desde el panel xfce o si uso un script desde el escritorio, no obtiene ningún parámetro. ¿¿Por qué??
@ MARCOFranciosi No lo sé. Funciona bien para mí. Tendrá que comentar la respuesta para que el respondedor pueda responder, aunque no estoy seguro de si todavía tiene suficiente representante.
Sparhawk

Respuestas:

7

Sabes cómo configurar la variable en un shell, pero para el registro puedes escribir :

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

y todos los programas que inicie desde esta sesión de shell después de eso tendrán la variable establecida.

Si desea que se configure para cada shell que comience después, agregue esa línea ~/.profiletambién. En ese caso, se aplicará a todos los shells futuros que comience, pero no a ninguno que se esté ejecutando actualmente.

.profilePor lo general, también funcionará para la GUI, pero eso puede romperse por la configuración del sistema y la forma en que inicia las cosas. Esta es solo la configuración por usuario.


Si desea configurarlo para cada usuario todo el tiempo, puede agregar una asignación a /etc/environment. El formato es un poco diferente allí: solo KEY=VALen líneas separadas, sin citas obligatorias y nada más.

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on

Esto es analizado por el pam_envmódulo. También hay un ~/.pam_environmentarchivo por usuario , que tiene el mismo efecto para un solo usuario. Ambos requieren cerrar sesión y volver a iniciarla para que el cambio surta efecto. Las variables se establecerán para cada sesión de inicio de sesión futura, tanto en la consola como en X.

Del mismo modo, puede crear un archivo /etc/profile.dcon una exportdeclaración y cualquier usuario lo cargará en cada sesión futura. Probablemente habrá algunos archivos preexistentes allí para modelarlo, pero solo la exportlínea anterior estará bien.


Alternativamente, puede agregar la exportdeclaración en ~/.xinitrc(si usa startx) ~/.xsession, o ~/.xprofile. KDE también admite un directorio ~/.kde/envque puede contener tantos archivos de shell como desee, que contienen exportdeclaraciones como las anteriores. Probablemente preferiría uno de los otros enfoques.

Michael Homer
fuente
1
Gran respuesta. Claro y completo. FWIW Usé la /etc/environmentopción, que me pareció más lógica.
Sparhawk