web-dev-qa-db-ja.com

グローバルJavaオプションをどこに設定できますか?

Java jabrefrubymineなどのプログラムに、恐ろしく不適切にレンダリングされたフォントがあります。これは、

_Java_OPTIONS='-Dawt.useSystemAAFontSettings=on' jabref

これらのJavaオプションを環境変数としてエクスポートし、プログラムをコマンドラインから起動できることを理解しています。しかし、これらのオプションをグローバルに設定してすべてのJavaプログラムは、どのように起動しても、それらを認識しますか?

また、Javaプログラムのすべての*.desktopファイルを変更できることも知っていますが、グローバルなソリューションを探しています。

Arch LinuxでJava-7-openjdkを使用しています。 (FWIWこれは、壊れた jre7-openjdk-headless-infinality がインストールされている場合は問題ありませんでした。)

10
Sparhawk

あなたはシェルで変数を設定する方法を知っていますが、記録のために あなたは書くことができます

export _Java_OPTIONS='-Dawt.useSystemAAFontSettings=on'

そして、その後このシェルセッションから開始するすべてのプログラムには、変数が設定されます。

後で開始するeveryシェルに設定する場合は、その行を~/.profileにも追加します。その場合、それはあなたが開始する将来のすべてのシェルに適用されますが、現在実行中のシェルには適用されません。

.profileは一般的にGUIでも機能しますが、システム構成や起動方法によっては機能しない場合があります。これはユーザーごとの構成のみです。


常にすべてのユーザーに設定する場合は、/etc/environmentに割り当てを追加できます。ここでは形式が少し異なります。KEY=VALを別の行に入力するだけで、引用符は必要なく、何もありません。

_Java_OPTIONS=-Dawt.useSystemAAFontSettings=on

これは pam_env モジュールによって解析されます。ユーザーごとの~/.pam_environmentファイルもあり、1人のユーザーだけに同じ効果があります。変更を有効にするには、どちらもログアウトしてから再度ログインする必要があります。変数は、コンソールとXの両方で、今後のログインセッションごとに設定されます。

同様に、exportステートメントを使用して /etc/profile.d でファイルを作成すると、任意のユーザーが以降のすべてのセッションにロードされます。モデル化する既存のファイルがいくつか存在する可能性がありますが、上記のexport行だけで十分です。


または、~/.xinitrcexportを使用する場合)、~/.xsession、または~/.xprofilestartxステートメントを追加できます。 KDEもサポート ディレクトリ~/.kde/envには、上記のexportステートメントを含む、必要な数のシェルファイルを含めることができます。私はおそらく他のアプローチの1つを好みます。

7
Michael Homer