Wo kann ich globale Java-Optionen festlegen?

10

Ich habe schreckliche, falsch gerenderte Schriftarten in Java-Programmen wie jabrefund rubymine. Dies kann durch Ausführen behoben werden

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

Ich verstehe, dass ich diese Java-Optionen als Umgebungsvariablen exportieren und die Programme über die Befehlszeile starten kann. Gibt es jedoch eine Möglichkeit, diese Optionen global festzulegen, sodass alle Java-Programme sie erkennen, unabhängig davon, wie sie gestartet werden?

Ich weiß auch, dass ich alle *.desktopDateien für meine Java-Programme ändern könnte , aber ich suche nach einer globalen Lösung.

Ich benutze java-7-openjdkunter Arch Linux. (FWIW das war früher in Ordnung mit der jetzt kaputten jre7-openjdk-headless-infinality installiert.)

Sparhawk
quelle
Bei mir funktioniert es nur, wenn ich die App vom Terminal aus starte, wenn ich den Anwendungsstarter über das xfce-Bedienfeld verwende oder wenn ich ein Skript vom Desktop aus verwende, werden keine Parameter angezeigt. Warum??
@ MARCOFranciosi Ich weiß es nicht. Es funktioniert gut für mich. Sie müssen die Antwort kommentieren, damit der Antwortende antworten kann, obwohl ich nicht sicher bin, ob Sie noch genügend Vertreter haben.
Sparhawk

Antworten:

7

Sie wissen, wie die Variable in einer Shell festgelegt wird, aber für den Datensatz können Sie Folgendes schreiben :

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

Für alle Programme, die Sie ab dieser Shell-Sitzung starten, wird die Variable festgelegt.

Wenn Sie möchten, dass es für jede Shell, die Sie anschließend starten, festgelegt wird, fügen Sie diese Zeile ~/.profileebenfalls hinzu. In diesem Fall gilt dies für alle zukünftigen Shells, die Sie starten, jedoch nicht für alle, die derzeit ausgeführt werden.

.profilefunktioniert im Allgemeinen auch für die GUI, aber das kann durch die Systemkonfiguration und die Art und Weise, wie Sie die Dinge starten, unterbrochen werden. Dies ist nur eine Konfiguration pro Benutzer.


Wenn Sie möchten, dass es jederzeit für jeden Benutzer festgelegt wird, können Sie eine Zuordnung hinzufügen /etc/environment. Das Format ist dort etwas anders: nur KEY=VALin getrennten Zeilen, ohne Anführungszeichen und ohne irgendetwas anderes.

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on

Dies wird vom pam_envModul analysiert . Es gibt auch eine Benutzerdatei ~/.pam_environment, die nur für einen Benutzer den gleichen Effekt hat. Beide müssen abgemeldet und wieder angemeldet werden, damit die Änderung wirksam wird. Die Variablen werden für jede zukünftige Anmeldesitzung sowohl an der Konsole als auch in X festgelegt.

Ebenso können Sie eine Datei /etc/profile.dmit einer exportAnweisung erstellen, die von jedem Benutzer in jede zukünftige Sitzung geladen wird. Es wird wahrscheinlich einige bereits vorhandene Dateien geben, nach denen es modelliert werden kann, aber nur die exportobige Zeile ist in Ordnung.


Alternativ können Sie die exportAnweisung in ~/.xinitrc(falls verwendet startx) ~/.xsession, oder hinzufügen ~/.xprofile. KDE unterstützt auch ein Verzeichnis ~/.kde/env, das beliebig viele Shell-Dateien enthalten kann, die exportAnweisungen wie oben enthalten. Ich würde wahrscheinlich einen der anderen Ansätze bevorzugen.

Michael Homer
quelle
1
Gute Antwort. Klar und gründlich. FWIW Ich habe die /etc/environmentOption verwendet, die mir am logischsten erschien.
Sparhawk