過去の記事を最新情報で更新しました。
CentOS は 6.3 に、Java (JDK) は Java SE 7u21 (Java 7) に上がっています。
1. Java SE Development Kit (JDK) のダウンロード
Oracle (旧 Sun) のダウンロードページ Java SE Downloads から最新の JDK をダウンロードします。
JDK の「DOWNLOAD」ボタンを選択し、「Accept License Agreement」をチェックします。
64bit Linux 用の「Linux x64」は tar.gz 版と RPM 版がありますが、今回は RPM 版にしました。
本日時点の最新版は jdk-7u21-linux-x64.rpm (85,388,149 byte) でした。
2. Java SE Development Kit (JDK) のインストール
2.1. JDK のインストール
Java 6 の時代と異なり、rpm コマンドだけでインストールは完了します。
準備中... ########################################### [100%]
1:jdk ########################################### [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
2.2. JDK のインストール先
Java のモジュールは /usr/java 配下に展開されています。
合計 4
lrwxrwxrwx. 1 root root 16 4月 22 20:12 2013 default -> /usr/java/latest
drwxr-xr-x. 8 root root 4096 4月 22 20:12 2013 jdk1.7.0_21
lrwxrwxrwx. 1 root root 21 4月 22 20:12 2013 latest -> /usr/java/jdk1.7.0_21
実態は /usr/java/jdk1.7.0_21 配下にインストールされていて、2つのリンク default と latest が作成されています。
3. alternatives 設定
(*) alternatives を使用していない場合 → @see 「4. 環境変数設定」
3.1. パスの確認
インストールしただけではパスが通っていないため Java 7 は動作しません。
事前に OpenJDK をインストールしていると、OpenJDK へのパスが有効なままです。
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.8) (rhel-1.56.1.11.8.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
このパスは /usr/bin 配下で定義されています。
lrwxrwxrwx. 1 root root 22 4月 6 16:38 2013 /usr/bin/java -> /etc/alternatives/java
lrwxrwxrwx. 1 root root 27 4月 22 20:12 2013 /usr/bin/javac -> /usr/java/default/bin/javac
lrwxrwxrwx. 1 root root 29 4月 22 20:12 2013 /usr/bin/javadoc -> /usr/java/default/bin/javadoc
lrwxrwxrwx. 1 root root 28 4月 22 20:12 2013 /usr/bin/javaws -> /usr/java/default/bin/javaws
java コマンドのみ /etc/alternatives/java へのリンクとなっているので、Java 7 にパスを通すには alternatives の設定を変更する必要があります。
3.2. alternatives 設定確認
alternatives コマンドで現在の設定を確認します。
java -ステータスは自動です。
リンクは現在 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java を指しています。
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java - 優先項目 16000
~ 略 ~
現在の「最適」バージョンは /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java です。
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java が 優先度 16000 で登録されていることが確認できます。
3.3. alternatives への Java 7 の追加
Java 7 もalternatives に追加します。
優先度は Java のバージョンが 7u21 (JDK1.7.0_21) なので 17021 とします。
alternatives のパラメータの意味は以下の通りです。
パラメータ1 : 登録するリンク ex.) /usr/bin/java
パラメータ2 : 登録先する名前 ex.) java
パラメータ3 : 実際に実行するパス ex.) /usr/java/default/bin/java, /usr/java/jdk1.7.0_21/bin/java
パラメータ4 : 優先度 ex.) 17021
3.4. alternatives 変更結果確認
alternatives コマンドで変更後の設定を確認します。
java -ステータスは自動です。
リンクは現在 /usr/java/default/bin/java を指しています。
/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java - 優先項目 16000
/usr/java/default/bin/java - 優先項目 17021
~ 略 ~
現在の「最適」バージョンは /usr/java/default/bin/java です。
/usr/java/default/bin/java が 優先度 17021 で追加されました。
有効な java も優先度が一番高い /usr/java/default/bin/java となっています。
3.5. 使用する Java の変更
alternatives から使用する Java を切り替えることが可能です。
2 プログラムがあり 'java' を提供します。
選択 コマンド
-----------------------------------------------
1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
*+ 2 /usr/java/default/bin/java
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
「+」が現在使用中の Java、「*」が優先度が一番高い Java です。
3.6. 動作確認
java -version コマンドで alternatives が正しく設定されているかを確認します。
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
4. 環境変数設定
Tomcat 等、環境変数「JAVA_HOME」を参照するアプリケーションを使用する場合は別途定義する必要があります。
~/.bash_profile へ追加
export JAVA_HOME=/usr/java/default
ここで JAVA_HOME を /usr/java/default としているのは、将来、最新の JDK をインストールした場合でもパス設定を変更不要とするためです。
変更した ~/.bash_profile を有効化します。