Gdzie mogę ustawić globalne opcje Java?


10

Mam okropne, niepoprawnie renderowane czcionki w programach Java, takich jak jabrefi rubymine. Można to naprawić, uruchamiając

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

Rozumiem, że mogłem wyeksportować te opcje Java jako zmienne środowiskowe i uruchomić programy z wiersza polecenia. Czy istnieje jednak sposób, aby ustawić te opcje globalnie, aby wszystkie programy Java rozpoznawały je, bez względu na to, jak są uruchamiane?

Wiem też, że mógłbym modyfikować wszystkie *.desktoppliki dla moich programów Java, ale szukam globalnego rozwiązania.

Używam java-7-openjdkna Arch Linux. (FWIW było to w porządku z zainstalowanym teraz zepsutym jre7-openjdk-headless-infinality .)


Dla mnie to działa tylko wtedy, gdy uruchamiam aplikację z terminala, jeśli używam programu uruchamiającego aplikacje z panelu xfce lub jeśli używam skryptu z pulpitu, nie dostaje on żadnego parametru. Dlaczego??

@MARCOFranciosi Nie wiem. Działa dla mnie dobrze. Musisz skomentować odpowiedź, aby odpowiadający mógł odpowiedzieć, chociaż nie jestem pewien, czy masz wystarczająco dużo przedstawicieli.
Sparhawk

Odpowiedzi:


7

Wiesz, jak ustawić zmienną w powłoce, ale dla rekordu możesz napisać :

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

i wszystkie programy, które rozpoczniesz od tej sesji powłoki po tym, będą miały ustawione zmienne.

Jeśli chcesz, aby był ustawiony dla każdej powłoki, którą uruchomisz później, dodaj również tę linię ~/.profile. W takim przypadku będzie to miało zastosowanie do wszystkich uruchomionych przyszłych powłok, ale nie do tych, które są obecnie uruchomione.

.profilebędzie ogólnie działać również dla GUI, ale może to zostać zepsute przez konfigurację systemu i sposób uruchamiania. Jest to tylko konfiguracja dla użytkownika.


Jeśli chcesz ustawić to dla każdego użytkownika przez cały czas, możesz dodać przypisanie do /etc/environment. Format jest tam trochę inny: tylko KEY=VALw osobnych wierszach, bez wymaganego cytowania i niczego innego.

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on

Jest to analizowane przez pam_envmoduł. Istnieje również ~/.pam_environmentplik dla jednego użytkownika, który ma taki sam efekt tylko dla jednego użytkownika. Oba wymagają wylogowania i ponownego zalogowania, aby zmiana zaczęła obowiązywać. Zmienne zostaną ustawione dla każdej przyszłej sesji logowania, zarówno w konsoli, jak i w X.

Podobnie możesz utworzyć plik /etc/profile.dz exportinstrukcją i będzie on ładowany do każdej przyszłej sesji przez dowolnego użytkownika. Prawdopodobnie będą tam wcześniej istniejące pliki, na których można by je modelować, ale tylko exportpowyższa linia będzie w porządku.


Alternatywnie możesz dodać exportinstrukcję w ~/.xinitrc(jeśli używasz startx) ~/.xsession, lub ~/.xprofile. KDE obsługuje również katalog, ~/.kde/envktóry może zawierać tyle plików powłoki, ile chcesz, które zawierają exportinstrukcje jak wyżej. Prawdopodobnie wolałbym inne podejście.


1
Świetna odpowiedź. Jasne i dokładne. FWIW skorzystałem z /etc/environmentopcji, która wydawała mi się najbardziej logiczna.
Sparhawk
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.