「Java」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
10行目: 10行目:
 
[[tr:Java]]
 
[[tr:Java]]
 
{{Related articles start}}
 
{{Related articles start}}
{{Related2|Java Package Guidelines|Java パッケージガイドライン}}
+
{{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
   
 
例:
 
例:
   
% 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" がまず初めに使われます。[[AUR|AUR]] の非公式パッケージはその後です):
+
存在しない 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|AUR]] に新しい JVM のパッケージを投稿し、Arch Linux の JVM の扱いかたにあわせて {{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|[[AUR|AUR]] のパッケージは {{Ic|archlinux-java}} をサポートしていたりしていなかったりします。}}
+
{{Warning|[[AUR]] のパッケージは {{Ic|archlinux-java}} をサポートしていたりしていなかったりします。}}
   
 
=== Java SE ===
 
=== Java SE ===
Oracle による JRE と JDK の実装は [[Arch User Repository|AUR]] から利用できます: {{AUR|jre}} {{AUR|jdk}}。
+
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}} は[[official Repositories|公式リポジトリ]]からインストールでき、[[Arch User Repository|AUR]] には {{AUR|parrot-git}} があります。
+
[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 に他のウィンドウマネージャを動かしていると信じこませることが可能です。これによって [[Awesome|Awesome]] や [[Dwm]] などのウィンドウマネージャで起こる Java の GUI のレンダリング問題が解決する可能性があります。
+
[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 Runtime Environment Fonts]] を見て下さい。
+
詳しい情報は [[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 からインストールすることができますが公式のサポートはありません。

インストール

ノート: JDK をインストールすると自動的に依存パッケージとして JRE がインストールされます。
ノート: インストールした後、Java 環境をシェルに認識させる必要があります ($PATH 変数)。コマンドラインから /etc/profile を source するか、デスクトップ環境ならばログアウトとログインが必要です。

依存パッケージとして自動的にインストールされる java-runtime-commonjava-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 にリンクを作成・更新します。

警告: ファイル /etc/profile.d/jdk.sh は現在どのパッケージにも入っていません。

ブラウザで 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 のパッケージのリリースにはパッケージがベースとしているプロプライエタリのバージョンへの言及が含まれていることがありますが、オープンソースプロジェクトには独自のバージョン規則があります:

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 を使用したいパッケージ作成者を対象にしています。パッケージは以下の条件を満たす必要があります:

他の注意事項:

  • Java 環境が必要なパッケージでベンダーを問わない場合は通常通りに java-runtime, java-runtime-headless または java-environment を依存パッケージとして宣言してください
  • 特定の Java ベンダーが必要なパッケージは適当なパッケージを依存パッケージとして宣言してください
  • OpenJDK パッケージは provides="java-runtime-openjdk=${pkgver}" などを宣言しています。このためサードパーティのパッケージはバージョンを指定せずに OpenJDK を依存パッケージとして宣言することができます

AUR のサポートされていない JVM

警告: AUR のパッケージは archlinux-java をサポートしていたりしていなかったりします。

Java SE

Oracle による JRE と JDK の実装は AUR から利用できます: jreAUR, server-jreAUR, jdkAUR

Java SE 6/7

AUR には旧バージョンである jre6AUR/jre6-compatAUR/jre7AURjdk6AUR/jdk6-compatAUR/jdk7AUR が含まれています。

Oracle JRockit

JRockit は Oracle による Java の JIT バージョンであり、AURjrockitAUR からインストールできます。

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.orgwmname を使うことで JVM に他のウィンドウマネージャを動かしていると信じこませることが可能です。これによって AwesomeDwm などのウィンドウマネージャで起こる 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 ランタイムを明示的に使用する全てのアプリケーションに適用されます。ただし独自の (内部の) ランタイムを持っていたり GUI やフォントレンダリングに独自の手法を使っているアプリケーションも存在するため、下に書かれていることが全て機能するとは保証できません。

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