Di mana saya bisa mengatur Opsi Java global?

10

Saya memiliki font-font yang mengerikan, yang tidak benar diterjemahkan dalam program Java seperti jabrefdan rubymine. Ini dapat diperbaiki dengan menjalankan

_JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

Saya mengerti bahwa saya dapat mengekspor opsi Java ini sebagai variabel lingkungan, dan meluncurkan program dari baris perintah. Namun, apakah ada cara untuk mengatur opsi ini secara global, sehingga semua program Java mengenalinya, tidak peduli bagaimana mereka diluncurkan?

Saya juga tahu bahwa saya bisa memodifikasi semua *.desktopfile untuk program Java saya, tetapi saya sedang mencari solusi global.

Saya menggunakan java-7-openjdkdi Arch Linux. (FWIW ini dulunya baik-baik saja dengan jre7-openjdk-headless-infinality diinstal sekarang.)

Sparhawk
sumber
Bagi saya itu hanya berfungsi jika saya meluncurkan aplikasi dari terminal, jika saya menggunakan peluncur aplikasi dari panel xfce atau jika saya menggunakan skrip dari desktop itu tidak mendapatkan parameter apa pun. Mengapa??
@ MARCOFranciosi saya tidak tahu. Ini bekerja dengan baik untuk saya. Anda harus mengomentari jawabannya sehingga penjawab mereka dapat merespons, meskipun saya tidak yakin apakah Anda memiliki cukup perwakilan.
Sparhawk

Jawaban:

7

Anda tahu cara mengatur variabel di shell, tetapi sebagai catatan Anda bisa menulis :

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'

dan semua program yang Anda mulai dari sesi shell ini setelah itu akan memiliki set variabel.

Jika Anda ingin diset untuk setiap shell yang Anda mulai setelahnya, tambahkan baris itu ~/.profilejuga. Dalam hal ini akan berlaku untuk semua shell masa depan yang Anda mulai, tetapi tidak pada shell yang sedang berjalan.

.profileumumnya akan bekerja untuk GUI juga, tetapi itu bisa rusak oleh konfigurasi sistem dan bagaimana Anda memulai. Ini hanya konfigurasi per pengguna.


Jika Anda menginginkannya disetel untuk setiap pengguna setiap saat, Anda dapat menambahkan tugas ke /etc/environment. Formatnya sedikit berbeda di sana: hanya KEY=VALpada baris yang berbeda, tanpa kutipan yang diperlukan dan tidak ada yang lain.

_JAVA_OPTIONS=-Dawt.useSystemAAFontSettings=on

Ini diuraikan oleh pam_envmodul. Ada file per pengguna ~/.pam_environmentjuga, yang memiliki efek yang sama hanya untuk satu pengguna. Keduanya membutuhkan logout dan kembali agar perubahan diterapkan. Variabel akan ditetapkan untuk setiap sesi login di masa depan, baik di konsol maupun di X.

Demikian pula, Anda dapat membuat file /etc/profile.ddengan exportpernyataan di dalamnya dan itu akan dimuat ke dalam setiap sesi di masa depan oleh pengguna mana pun. Kemungkinan akan ada beberapa file yang sudah ada di sana untuk memodelkannya, tetapi hanya exportbaris di atas akan baik-baik saja.


Atau, Anda dapat menambahkan exportpernyataan di ~/.xinitrc(jika Anda menggunakan startx) ~/.xsession,, atau ~/.xprofile. KDE juga mendukung direktori ~/.kde/envyang dapat berisi file shell sebanyak yang Anda inginkan, yang berisi exportpernyataan seperti di atas. Saya mungkin lebih suka salah satu pendekatan lain.

Michael Homer
sumber
1
Jawaban yang bagus Jelas dan teliti. FWIW saya menggunakan /etc/environmentopsi, yang menurut saya paling logis.
Sparhawk