「Java」の版間の差分
細 (→インストール) |
|||
10行目: | 10行目: | ||
[[tr:Java]] |
[[tr:Java]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
− | {{ |
+ | {{Related|Java パッケージガイドライン}} |
+ | {{Related|Java ランタイム環境のフォント}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | "''Java は Sun Microsystems によって開発され1995年に Sun Microsystems の Java プラットフォームのコアコンポーネントとしてリリースされたプログラミング言語です。構文は C および C++ から多くを引き継いでいますが、オブジェクトモデルがシンプルで低水準の機能が削られています。基本的に Java のアプリケーションはコンピュータアーキテクチャに関係なく動く Java 仮想マシン (JVM) で動くバイトコードにコンパイルされます。''" — [[Wikipedia:ja:Java|Wikipedia]] |
||
+ | [[Wikipedia:ja:Java|Wikipedia]] より: |
||
− | Arch Linux は公式でオープンソースの [http://openjdk.java.net/ OpenJDK] バージョン7と8をサポートしています。これらの JVM は全てインストールしても衝突せず、ヘルパースクリプト {{Ic|archlinux-java}} を使って切り替えることが可能です。他の Java 環境は [[AUR|AUR]] からインストールすることができますが公式のサポートはありません。 |
||
+ | :Java は Sun Microsystems によって開発され1995年に Sun Microsystems の Java プラットフォームのコアコンポーネントとしてリリースされたプログラミング言語です。構文は C および C++ から多くを引き継いでいますが、オブジェクトモデルがシンプルで低水準の機能が削られています。基本的に Java のアプリケーションはコンピュータアーキテクチャに関係なく動く Java 仮想マシン (JVM) で動くバイトコードにコンパイルされます。 |
||
+ | |||
+ | Arch Linux は公式でオープンソースの [http://openjdk.java.net/ OpenJDK] バージョン7と8をサポートしています。これらの JVM は全てインストールしても衝突せず、ヘルパースクリプト {{Ic|archlinux-java}} を使って切り替えることが可能です。他の Java 環境は [[AUR]] からインストールすることができますが公式のサポートはありません。 |
||
== インストール == |
== インストール == |
||
+ | |||
+ | {{Note|JDK をインストールすると自動的に依存パッケージとして JRE がインストールされます。}} |
||
+ | |||
+ | {{Note|インストールした後、Java 環境をシェルに認識させる必要があります ({{Ic|$PATH}} 変数)。コマンドラインから {{Ic|/etc/profile}} を source するか、デスクトップ環境ならばログアウトとログインが必要です。}} |
||
+ | |||
+ | 依存パッケージとして自動的にインストールされる {{Pkg|java-runtime-common}} と {{Pkg|java-environment-common}} という名前の2つの''共通''パッケージには環境ファイル {{Ic|/etc/profile.d/jre.sh}} が入っています。このファイルには全ての JVM 環境で共通の変数が含まれています。また、{{Pkg|java-runtime-common}} パッケージにはデフォルトの Java 環境を表示したり変更することができるユーティリティスクリプト {{Ic|archlinux-java}} も付いています。このスクリプトは衝突しないように {{Ic|/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME} }} にインストールされた Java 環境や Java ランタイムに {{Ic|/usr/lib/jvm/default}} や {{Ic|/usr/lib/jvm/default-runtime}} からリンクを設定します。さらに Java 環境セットによる全ての実行ファイルのために {{Ic|/usr/bin}} にリンクを作成・更新します。 |
||
+ | |||
+ | {{Warning|ファイル {{Ic|/etc/profile.d/jdk.sh}} は現在どのパッケージにも入っていません。}} |
||
+ | |||
+ | ブラウザで Java を使うには ([[Wikipedia:ja:Javaアプレット|Java アプレット]]や [[Wikipedia:ja:Java Web Start|Java Web Start]])、{{Pkg|icedtea-web}} をインストールしてください。詳しくは [[ブラウザプラグイン#Java (IcedTea)]] を見て下さい。 |
||
[[公式リポジトリ]]から以下のパッケージがインストールできます: |
[[公式リポジトリ]]から以下のパッケージがインストールできます: |
||
− | OpenJDK 7 |
+ | === OpenJDK 7 === |
{| class="wikitable" |
{| class="wikitable" |
||
36行目: | 49行目: | ||
|} |
|} |
||
− | OpenJDK 8 |
+ | === OpenJDK 8 === |
{| class="wikitable" |
{| class="wikitable" |
||
53行目: | 66行目: | ||
|} |
|} |
||
+ | === OpenJFX === |
||
− | {{Note|JDK をインストールすると自動的に依存パッケージとして JRE がインストールされます。}} |
||
+ | JavaFX も公式リポジトリからインストールすることができます。OpenJDK 8 が必要です。 |
||
− | {{Note|インストールした後、Java 環境をシェルに認識させる必要があります ({{Ic|$PATH}} 変数)。コマンドラインから {{Ic|/etc/profile}} を source するか、デスクトップ環境ならばログアウトとログインが必要です。}} |
||
+ | {| class="wikitable" |
||
− | 依存パッケージとして自動的にインストールされる {{Pkg|java-runtime-common}} と {{Pkg|java-environment-common}} という名前の2つの''共通''パッケージには環境ファイル {{Ic|/etc/profile.d/jre.sh}} が入っています。このファイルには全ての JVM 環境で共通の変数が含まれています。また、{{Pkg|java-runtime-common}} パッケージにはデフォルトの Java 環境を表示したり変更することができるユーティリティスクリプト {{Ic|archlinux-java}} も付いています。このスクリプトは衝突しないように {{Ic|/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME} }} にインストールされた Java 環境や Java ランタイムに {{Ic|/usr/lib/jvm/default}} や {{Ic|/usr/lib/jvm/default-runtime}} からリンクを設定します。さらに Java 環境セットによる全ての実行ファイルのために {{Ic|/usr/bin}} にリンクを作成・更新します。 |
||
+ | ! パッケージ名 !! 中身 |
||
− | |||
+ | |- |
||
− | {{Warning|ファイル {{Ic|/etc/profile.d/jdk.sh}} は現在どのパッケージにも入っていません。}} |
||
+ | |{{Pkg|java-openjfx}} || Java OpenJFX 8 クライアントアプリケーションプラットフォーム (JavaFX のオープンソース実装) |
||
− | |||
+ | |- |
||
− | ブラウザで Java を使うには ([[Wikipedia:ja:Javaアプレット|Java アプレット]]や [[Wikipedia:ja:Java Web Start|Java Web Start]])、{{Pkg|icedtea-web}} をインストールしてください。詳しくは [[ブラウザプラグイン#Java (IcedTea)]] を見て下さい。 |
||
+ | |{{Pkg|java-openjfx-doc}} || OpenJFX javadoc |
||
+ | |- |
||
+ | |{{Pkg|java-openjfx-src}} || OpenJFX ソース |
||
+ | |- |
||
+ | |} |
||
== パッケージの out-of-date == |
== パッケージの out-of-date == |
||
84行目: | 102行目: | ||
=== インストールされている Java 互換環境を表示 === |
=== インストールされている Java 互換環境を表示 === |
||
− | + | $ archlinux-java status |
|
例: |
例: |
||
− | + | $ archlinux-java status |
|
Available Java environments: |
Available Java environments: |
||
java-7-openjdk (default) |
java-7-openjdk (default) |
||
116行目: | 134行目: | ||
=== デフォルトの Java 環境を修正 === |
=== デフォルトの Java 環境を修正 === |
||
− | 存在しない Java 環境のリンクが設定されている場合、{{Ic|archlinux-java fix}} コマンドを呼び出すとリンクの修正が行われます。デフォルトの Java 環境が設定されていないときは、インストールされている Java 環境を探して設定を行います (公式でサポートされているパッケージ "OpenJDK 7" と "OpenJDK 8" がまず初めに使われます。[[ |
+ | 存在しない Java 環境のリンクが設定されている場合、{{Ic|archlinux-java fix}} コマンドを呼び出すとリンクの修正が行われます。デフォルトの Java 環境が設定されていないときは、インストールされている Java 環境を探して設定を行います (公式でサポートされているパッケージ "OpenJDK 7" と "OpenJDK 8" がまず初めに使われます。[[AUR]] の非公式パッケージはその後です): |
# archlinux-java fix |
# archlinux-java fix |
||
+ | === デフォルトでないバージョンの Java を使ってアプリケーションを起動 === |
||
− | === 旧ワンタイム設定 === |
||
+ | デフォルトのバージョン以外の Java を使ってアプリケーションを起動したい場合 (例えば jre7 と jre8 の両方がインストールされている場合)、bash スクリプトでアプリケーションをラッピングして Java のデフォルトの PATH を変更することができます。例えば、デフォルトのバージョンが jre7 で、jre8 を使いたい場合: |
||
− | 以前は、{{Ic|JAVA_HOME}} 環境変数を設定して、Java インストールを使用するのに {{Pkg|java-common}} パッケージを使用する必要がありました。シンボリックリンクの数を減らして {{Bug|41883}} を修正するために、{{Pkg|java-runtime-common}} は代わりに {{Ic|PATH}} を設定するので、ユーザーが {{Ic|JAVA_HOME}} に設定したものは全て上書きされます。 |
||
+ | |||
+ | #!/bin/sh |
||
+ | |||
+ | export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:$PATH |
||
+ | exec /path/to/application |
||
== {{Ic|archlinux-java}} をサポートするのに必要なパッケージの条件 == |
== {{Ic|archlinux-java}} をサポートするのに必要なパッケージの条件 == |
||
− | このセクションは [[ |
+ | このセクションは [[AUR]] に新しい JVM のパッケージを投稿し、Arch Linux の JVM の扱いかたにあわせて {{Ic|archlinux-java}} を使用したいパッケージ作成者を対象にしています。パッケージは以下の条件を満たす必要があります: |
* 全てのファイルは {{Ic|/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME} }} 以下に配置 |
* 全てのファイルは {{Ic|/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME} }} 以下に配置 |
||
141行目: | 164行目: | ||
== AUR のサポートされていない JVM == |
== AUR のサポートされていない JVM == |
||
− | {{Warning|[[ |
+ | {{Warning|[[AUR]] のパッケージは {{Ic|archlinux-java}} をサポートしていたりしていなかったりします。}} |
=== Java SE === |
=== Java SE === |
||
− | Oracle による JRE と JDK の実装は [[Arch User Repository|AUR]] から利用できます: {{AUR|jre}} |
+ | Oracle による JRE と JDK の実装は [[Arch User Repository|AUR]] から利用できます: {{AUR|jre}}, {{AUR|server-jre}}, {{AUR|jdk}}。 |
==== Java SE 6/7 ==== |
==== Java SE 6/7 ==== |
||
156行目: | 179行目: | ||
=== Parrot VM === |
=== Parrot VM === |
||
− | [http://www.parrot.org/ Parrot] は VM であり、異なる2つの方法によって実験的に [http://trac.parrot.org/parrot/wiki/Languages Java をサポート] しています: [http://code.google.com/p/parrot-jvm/ Java VM バイトコード翻訳機] もしくは [https://github.com/chrisdolan/perk Parrot VM のための Java コンパイラ]。{{Pkg|parrot}} は[[ |
+ | [http://www.parrot.org/ Parrot] は VM であり、異なる2つの方法によって実験的に [http://trac.parrot.org/parrot/wiki/Languages Java をサポート] しています: [http://code.google.com/p/parrot-jvm/ Java VM バイトコード翻訳機] もしくは [https://github.com/chrisdolan/perk Parrot VM のための Java コンパイラ]。{{Pkg|parrot}} は[[公式リポジトリ]]からインストールでき、[[Arch User Repository|AUR]] には {{AUR|parrot-git}} があります。 |
== トラブルシューティング == |
== トラブルシューティング == |
||
163行目: | 186行目: | ||
=== 他のウィンドウマネージャになりすます === |
=== 他のウィンドウマネージャになりすます === |
||
− | [http://tools.suckless.org/wmname suckless.org] の {{pkg|wmname}} を使うことで JVM に他のウィンドウマネージャを動かしていると信じこませることが可能です。これによって [[ |
+ | [http://tools.suckless.org/wmname suckless.org] の {{pkg|wmname}} を使うことで JVM に他のウィンドウマネージャを動かしていると信じこませることが可能です。これによって [[Awesome]] や [[Dwm]] などのウィンドウマネージャで起こる Java の GUI のレンダリング問題が解決する可能性があります。 |
$ wmname LG3D |
$ wmname LG3D |
||
200行目: | 223行目: | ||
クローズドソースとオープンソースの Java 実装のどちらもがフォントのアンチエイリアスを不適当に実装していることが知られています。次のオプションを使うことでこれを修正することが可能です: {{Ic|1=awt.useSystemAAFontSettings=on}}, {{Ic|1=swing.aatext=true}} |
クローズドソースとオープンソースの Java 実装のどちらもがフォントのアンチエイリアスを不適当に実装していることが知られています。次のオプションを使うことでこれを修正することが可能です: {{Ic|1=awt.useSystemAAFontSettings=on}}, {{Ic|1=swing.aatext=true}} |
||
− | 詳しい情報は [[Java |
+ | 詳しい情報は [[Java ランタイム環境のフォント]]を見て下さい。 |
=== GTK のルックアンドフィール === |
=== GTK のルックアンドフィール === |
2015年8月21日 (金) 23:39時点における版
Wikipedia より:
- Java は Sun Microsystems によって開発され1995年に Sun Microsystems の Java プラットフォームのコアコンポーネントとしてリリースされたプログラミング言語です。構文は C および C++ から多くを引き継いでいますが、オブジェクトモデルがシンプルで低水準の機能が削られています。基本的に Java のアプリケーションはコンピュータアーキテクチャに関係なく動く Java 仮想マシン (JVM) で動くバイトコードにコンパイルされます。
Arch Linux は公式でオープンソースの OpenJDK バージョン7と8をサポートしています。これらの JVM は全てインストールしても衝突せず、ヘルパースクリプト archlinux-java
を使って切り替えることが可能です。他の Java 環境は AUR からインストールすることができますが公式のサポートはありません。
目次
インストール
依存パッケージとして自動的にインストールされる java-runtime-common と java-environment-common という名前の2つの共通パッケージには環境ファイル /etc/profile.d/jre.sh
が入っています。このファイルには全ての JVM 環境で共通の変数が含まれています。また、java-runtime-common パッケージにはデフォルトの Java 環境を表示したり変更することができるユーティリティスクリプト archlinux-java
も付いています。このスクリプトは衝突しないように /usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME}
にインストールされた Java 環境や Java ランタイムに /usr/lib/jvm/default
や /usr/lib/jvm/default-runtime
からリンクを設定します。さらに Java 環境セットによる全ての実行ファイルのために /usr/bin
にリンクを作成・更新します。
ブラウザで Java を使うには (Java アプレットや Java Web Start)、icedtea-web をインストールしてください。詳しくは ブラウザプラグイン#Java (IcedTea) を見て下さい。
公式リポジトリから以下のパッケージがインストールできます:
OpenJDK 7
パッケージ名 | 中身 |
---|---|
jre7-openjdk-headless | Java 実行環境 (JRE) グラフィカルツールなし - バージョン 7 |
jre7-openjdk | 完全な Java 実行環境 (JRE) - バージョン 7 |
jdk7-openjdk | Java 開発キット (JDK) - バージョン 7 |
openjdk7-doc | OpenJDK javadoc - バージョン 7 |
openjdk7-src | OpenJDK ソース - バージョン 7 |
OpenJDK 8
パッケージ名 | 中身 |
---|---|
jre8-openjdk-headless | Java 実行環境 (JRE) グラフィカルツールなし - バージョン 8 |
jre8-openjdk | 完全な Java 実行環境 (JRE) - バージョン 8 |
jdk8-openjdk | Java 開発キット (JDK) - バージョン 8 |
openjdk8-doc | OpenJDK javadoc - バージョン 8 |
openjdk8-src | OpenJDK ソース - バージョン 8 |
OpenJFX
JavaFX も公式リポジトリからインストールすることができます。OpenJDK 8 が必要です。
パッケージ名 | 中身 |
---|---|
java-openjfx | Java OpenJFX 8 クライアントアプリケーションプラットフォーム (JavaFX のオープンソース実装) |
java-openjfx-doc | OpenJFX javadoc |
java-openjfx-src | OpenJFX ソース |
パッケージの out-of-date
Arch Linux のパッケージのリリースにはパッケージがベースとしているプロプライエタリのバージョンへの言及が含まれていることがありますが、オープンソースプロジェクトには独自のバージョン規則があります:
- jre7-openjdk, jdk7-openjdk, jre7-openjdk-headless は IcedTea のバージョン (例:
2.4.3
) にあわせて out-of-date になります。Oracle のバージョン (例:7.u45_2.4.3-1
のu45
) は関係ありません。 - icedtea-web は IcedTea Web のバージョン (例:
1.4.1
) にあわせて out-of-date になります。IcedTea のバージョンは関係ありません。
JVM の切り替え
ヘルパースクリプト archlinux-java
を使って切り替えることができます:
archlinux-java <COMMAND> COMMAND: status List installed Java environments and enabled one get Return the short name of the Java environment set as default set <JAVA_ENV> Force <JAVA_ENV> as default unset Unset current default Java environment fix Fix an invalid/broken default Java environment configuration
インストールされている Java 互換環境を表示
$ archlinux-java status
例:
$ archlinux-java status Available Java environments: java-7-openjdk (default) java-8-openjdk/jre
(default) は java-7-openjdk
がデフォルトに設定されていることを示しています。java
やその他のバイナリの呼び出しはこの Java インストールに基づきます。また、上の出力では OpenJDK 8 の JRE しかインストールされていないのに注意してください。
デフォルトの Java 環境を変更
# archlinux-java set <JAVA_ENV_NAME>
例:
# archlinux-java set java-8-openjdk/jre
archlinux-java
では存在しない Java 環境は設定できません。上の例では、jre8-openjdk はインストールされていますが jdk8-openjdk はインストールされていないため java-8-openjdk
を設定しようとしても失敗します:
# archlinux-java set java-8-openjdk '/usr/lib/jvm/java-8-openjdk' is not a valid Java environment path
デフォルトの Java 環境の設定を解除
パッケージが設定を管理するため Java 環境の設定を解除する必要はありません。それでも設定を解除したいときは、unset
コマンドを使って下さい:
# archlinux-java unset
デフォルトの Java 環境を修正
存在しない Java 環境のリンクが設定されている場合、archlinux-java fix
コマンドを呼び出すとリンクの修正が行われます。デフォルトの Java 環境が設定されていないときは、インストールされている Java 環境を探して設定を行います (公式でサポートされているパッケージ "OpenJDK 7" と "OpenJDK 8" がまず初めに使われます。AUR の非公式パッケージはその後です):
# archlinux-java fix
デフォルトでないバージョンの Java を使ってアプリケーションを起動
デフォルトのバージョン以外の Java を使ってアプリケーションを起動したい場合 (例えば jre7 と jre8 の両方がインストールされている場合)、bash スクリプトでアプリケーションをラッピングして Java のデフォルトの PATH を変更することができます。例えば、デフォルトのバージョンが jre7 で、jre8 を使いたい場合:
#!/bin/sh export PATH=/usr/lib/jvm/java-8-openjdk/jre/bin/:$PATH exec /path/to/application
archlinux-java
をサポートするのに必要なパッケージの条件
このセクションは AUR に新しい JVM のパッケージを投稿し、Arch Linux の JVM の扱いかたにあわせて archlinux-java
を使用したいパッケージ作成者を対象にしています。パッケージは以下の条件を満たす必要があります:
- 全てのファイルは
/usr/lib/jvm/java-${JAVA_MAJOR_VERSION}-${VENDOR_NAME}
以下に配置 - 該当するパッケージに java-runtime-common や java-environment-common に入っているリンクの実行可能ファイルがあること
- リンクが java-runtime-common や java-environment-common にない場合にのみ、
/usr/bin
から実行可能ファイルへのリンク - man ページの末尾に
-${VENDOR_NAME}${JAVA_MAJOR_VERSION}
をつけて衝突しないようにする (jre8-openjdk のファイルリストを見れば-openjdk8
を付ける man ページがわかります) - 他の JDK や
java-runtime
,java-runtime-headless
,java-environment
の conflicts や replaces は宣言しない - install 関数で
archlinux-java
スクリプトを使って他の Java 環境が設定されていない場合に Java 環境をデフォルトに設定 (強制的にデフォルトとしてインストールしてはいけません)。サンプルは公式にサポートされている Java 環境のパッケージのソースを参照。
他の注意事項:
- Java 環境が必要なパッケージでベンダーを問わない場合は通常通りに
java-runtime
,java-runtime-headless
またはjava-environment
を依存パッケージとして宣言してください - 特定の Java ベンダーが必要なパッケージは適当なパッケージを依存パッケージとして宣言してください
- OpenJDK パッケージは
provides="java-runtime-openjdk=${pkgver}"
などを宣言しています。このためサードパーティのパッケージはバージョンを指定せずに OpenJDK を依存パッケージとして宣言することができます
AUR のサポートされていない JVM
Java SE
Oracle による JRE と JDK の実装は AUR から利用できます: jreAUR, server-jreAUR, jdkAUR。
Java SE 6/7
AUR には旧バージョンである jre6AUR/jre6-compatAUR/jre7AUR と jdk6AUR/jdk6-compatAUR/jdk7AUR が含まれています。
Oracle JRockit
JRockit は Oracle による Java の JIT バージョンであり、AUR の jrockitAUR からインストールできます。
VMkit
VMkit は JIT 仮想マシンのための LLVM ベースのフレームワークです。J3 は VMkit を動作させる JVM です。ウェブページはここにあります: vmkit。J3 は GNU classpath ライブラリに依存していますが、Apache のクラスパスライブラリを使うことも可能です。
Parrot VM
Parrot は VM であり、異なる2つの方法によって実験的に Java をサポート しています: Java VM バイトコード翻訳機 もしくは Parrot VM のための Java コンパイラ。parrot は公式リポジトリからインストールでき、AUR には parrot-gitAUR があります。
トラブルシューティング
MySQL
JDBC ドライバーは URL のポートを使ってデータベースへの接続を確立するため、同じホストで動作していたとしても"リモート"とされます (すなわち MySQL はデフォルト設定のようにポートを開きません)。そのため、JDBC と MySQL を使うには MySQL のリモートアクセスを有効にする必要があります。MySQL の記事の指示に従って下さい。
他のウィンドウマネージャになりすます
suckless.org の wmname を使うことで JVM に他のウィンドウマネージャを動かしていると信じこませることが可能です。これによって Awesome や Dwm などのウィンドウマネージャで起こる Java の GUI のレンダリング問題が解決する可能性があります。
$ wmname LG3D
(wmname コマンドを実行した後、アプリケーションを再起動してください。)
これが機能するのは JVM にはハードコードされた既知の、ノンリペアレントウィンドウマネージャのリストが含まれているためです。最大の皮肉として、Sun によって Java で書かれたノンリペアレントウィンドウマネージャである LG3D
になりすますことを好むユーザーもいます。
フォントが読みにくい
下の #フォントレンダリングを改善する で書かれている方法でも、フォントによっては読みやすくならないことがあります。このようなときは、使用している MS フォントを変えてみて下さい。AUR から ttf-ms-fontsAUR をインストールしてください。
特定のアプリケーションでテキストが表示されない
特定のアプリケーションでテキストが完全に表示されない場合は FS#40871 で提案されているように #Tips and tricks のオプションを使うと直るかもしれません。
Too many levels of symbolic links
以下のようなエラーが表示される場合:
/usr/bin/java: line 2: /usr/lib/jvm/default/bin/java: Too many levels of symbolic links /usr/bin/java: line 2: exec: /usr/lib/jvm/default/bin/java: cannot execute: Too many levels of symbolic links
デフォルトの Java 環境を修正することで問題が解決するはずです。[1] も見て下さい。
Tips and tricks
Java アプリケーションのほとんどは Java ランタイムの前に変数を設定することで挙動をコントロールすることができます。フォーラムの投稿より、変数を設定するには ~/.bashrc
(もしくは全てのユーザーに適用するには /etc/profile.d/jre.sh
) に次の行を追加してください:
export _JAVA_OPTIONS="-D<option 1> -D<option 2>..."
例えば、システムのアンチエイリアスがされたフォントを使用して swing に GTK のルックアンドフィールを使わせるには:
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
フォントレンダリングを改善する
クローズドソースとオープンソースの Java 実装のどちらもがフォントのアンチエイリアスを不適当に実装していることが知られています。次のオプションを使うことでこれを修正することが可能です: awt.useSystemAAFontSettings=on
, swing.aatext=true
詳しい情報は Java ランタイム環境のフォントを見て下さい。
GTK のルックアンドフィール
Java プログラムの見た目が酷い場合、swing コンポーネントのデフォルトのルックアンドフィールを設定することができます: swing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
.
頑固な Java プログラムはクロスプラットフォームの Metal ルックアンドフィールを使用し続けることがあります。そのような場合には以下のプロパティを設定することで GTK のルックアンドフィールを使うように強制することが可能です: swing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
。
リペアレントしないウィンドウマネージャ
リペアレントしないウィンドウマネージャを使用する場合は .xinitrc
で以下の環境変数を設定してください:
export _JAVA_AWT_WM_NONREPARENTING=1