Java/ja

Java は Sun Microsystems によって開発されたプログラミング言語]]で、Java で開発されたアプリケーションがさまざまなプラットフォームで実行できるランタイムを採用しています. クロスプロットフォームのアプリケーションを作りたい開発者にとって、Java は人気のある選択肢です.

概要
Javaは、Sun Microsystems社が開発したプログラミング言語です. 言語はオブジェクト指向であり、各プラットフォーム用のコードを再コンパイルする必要なく複数のプラットフォーム上で動作するように設計されています. Javaはネイティブプログラムとしてコンパイルすることができますが、Javaの人気の多くは、自動メモリー管理など他の機能に加え、その携帯性によるものでしょう. プラットフォーム独立を可能にするために、JavaコンパイラはJavaコードをオペレーティングシステム上で直接動作するのではなく JVM (Java仮想マシン) 上で動作するJavaバイトコードと呼ばれる中間表現にコンパイルします.

Javaバイトコードを実行するためには、JRE （Javaランタイム環境）がインストールされている必要があります. JREは、とりわけコアライブラリ、プラットフォーム依存の JVM、ブラウザ用のプラグインを提供します. JDK（Java開発キット）は、バイトコードコンパイラやデバッガなどのプログラミングツールを追加します.

JVM の諸言語
Java 仮想マシンは Java プログラミング言語のみによって使用されているわけではありません. 複数のプログラミング言語が Java プラットフォームを使用し、JVM 上で動作しています. そうした例には以下を含みます: Clojure、Apache Groovy、Kotlin、Scala.

選択肢
Gentoo は多くの Java 実行環境 (JRE) と Java 開発キット (JDK) を提供しています. 現時点で使用可能な選択肢は以下の通りです.

JRE/JDK をインストールする
プロファイルのデフォルトの JDK をインストールするには、次のコマンドを実行します.

プロファイルのデフォルトの JRE をインストールするには、次のコマンドを実行します.

制限的なライセンスの問題を回避するため、OpenJDK プロジェクトによるオープンな Java 実装である のインストールを検討してください.

IcedTea GCJ 仮想マシンをインストールする
IcedTea 仮想マシンはソースコードで提供されており、Java バイトコードコンパイラーでコンパイルする必要があります. このブートストラップは GNU Compiler for Java (GCJ) によって実行できます. このコンパイラーは GCC が  USE フラグとともにビルドされていれば利用可能です.

GCC をこの USE フラグがセットされている状態で再ビルドすれば パッケージをインストールできます. Portage のバグが原因で、ユーザーは と  が既に存在していない場合にはまずこれらを明示的にインストールする必要があります.

fetch-restrict されている仮想マシンをインストールする
いくつかの JDK や JRE は設定の際にいくつかの追加手順が必要です. いつも通りにパッケージを emerge してください. 追加手順が必要な場合は ebuild がどこから何をダウンロードすべきかユーザーに指示します.

示されたファイルを (または DISTDIR の値)にダウンロードしてください. それらのファイルが正しいディレクトリに配置されたら、 を再実行します. これでその JRE/JDK のインストールが始まるでしょう.

ヘッドレス JRE をセットアップする
時には Java のすべての機能を持つ完全な JRE が必要ない場合もあるでしょう. サーバーで Java を使う場合、GUI、グラフィック、サウンド、あるいはプリンター関連の機能すら必要ないことがしばしばあります. 簡略化された(時にはヘッドレスとも呼ばれる) JRE をインストールするには、選んだ JRE のタイプに応じていくつかの USE フラグを変える必要があります.

現在の Gentoo プロファイルによってはこれは既にそうなっているかもしれません. 通常通り、特定のパッケージに当てはまる USE フラグの設定は を pretend モードで実行することで確認できます:

概要
Gentoo では複数の JDK や JRE を衝突させることなくインストールすることができます.

ツールを root 特権で使って、システム全体のデフォルト java 仮想マシン (VM) を設定できます. またユーザーは を使ってユーザーごとの個人用 VM 設定をカスタムできます.

Setting a default virtual machine
Running the command with the   option will output a list of all JREs and JDKs installed on the system. Here is an example of the output:

The * indicates this is the current active JVM (system-vm or user-vm when set). The name in the brackets ([]) is the handle or ID for that particular VM. The handle or the number to can be used to set the VM. The following text provides an example of how to set the system VM.

Setting the system VM by handle (preferred):

Alternate method: select VM by number handle number:

As a regular user, use java-config.

Build only VM
Some virtual machines are flagged as build-only due to being EOL and/or containing security vulnerabilities. These virtual machines will not automatically be used by Gentoo for the running of applications using Gentoo launchers (run-java-tool script designed for switching VMs), but will still be available for use by Gentoo's build environment as some packages may require them for building. The setting of these virtual machines as either the system or user VM is strongly discouraged as these VMs will then be used when running the executables, as well as used by any packages not using Gentoo's launcher scripts.

Setting a default CLASSPATH
can also be used to set a system-wide default CLASSPATH, as well a user-specific default CLASSPATH.

First, list available Java libraries installed on the system to possibly put in the CLASSPATH variable. Here is an example of output:

Again, the names in brackets ([]) are the IDs to pass to. Here is an example:

Update the environment by logging out, then in again or by typing.

For users, will create  file, which should be sourced from the shell's profile.

If desiring a system wide or user default classpath add something like the following to the shell's profile. This is advised against:

Java browser plugins
The Java browser plugin used to be managed via. This has now been removed in favor of a simpler out-of-the-box experience. For basic usage, simply emerge the chosen JVM with the  USE flag enabled. Note that Oracle's plugin is only available for and.

For more information, including JVM selection, Web Start, and multilib, see the README installed with icedtea-web.

Setting USE flags
For more information regarding USE flags, refer to the USE flags chapter from the Gentoo Handbook.

USE flags

 * The flag adds support for Java in a variety of programs;
 * The flag adds support for Mozilla-like browsers (including Firefox). This is needed for viewing Java applets in a Mozilla-like browser;
 * The flag adds support for the Java Cryptography Engine;

Following USE flags go in JAVA_PKG_IUSE.
 * The flag installs a zip of the source code of a package. This is traditionally used for IDEs to 'attach' source to the libraries that are being use;
 * For Java packages, the flag will build API documentation using javadoc.

External resources

 * The gentoo-java, gentoo-user, and gentoo-dev mailing list archives
 * and on IRC
 * Java 7 and bootstrapping icedtea on the Gentoo forums

More information can be found offline:



For suggestions or questions regarding this document, please email the Gentoo Java team: