CentOS6にJava6をインストールする

提供: Programming-Knowleodge.com
移動先: 案内検索

この記事では、CentOS6にJava6SE(JDK)をインストールする手順について説明します。
ここで対象としているOSとjavaのバージョンは、CentOS6.3とJava6SE Update38(JDK)です。

Java6SEの公開アップデータは終了しました。今後はJava8を使用するようにしましょう。


JDKをダウンロードする

下記のURLからJava SE 6 Update 38→JDKの項目のDownloadをクリックする。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

(追記)Java6の公開アップデータ終了に伴い。 Java6はJava Archiveに移動になりました。下記のURLから「Java SE6」を選択肢し、任意のJDKをダウンロードするようにしてください。
http://www.oracle.com/technetwork/java/javase/archive-139210.html

(追記)公開URLが変更になったようです。下記のURLから「Java SE6」を選択肢し、任意のJDKをダウンロードするようにしてください。
http://www.oracle.com/technetwork/java/archive-139210.html

「Java SE Download」という画面が表示されたら、「Accept License Agreement 」を選択
「jdk-6u38-linux-x64-rpm.bin」か「jdk-6u38-linux-i586-rpm.bin」をクリックするとダウンロードが始まります。
x64と名前に付いているのが64bit対応版です。
i586と名前がつくのが32bit版です。
これは環境に合わせて選択してください。


この記事では64bit版を使用し説明します。
なので、32bit版を使用したい場合は、jdk-6u38-linux-x64-rpm.binをjdk-6u38-linux-i586-rpm.binに置き換えて、読み進めてください

wgetでダウンロードしたいところですが、直接ダウンロードできません。
Javaをダウンロードするコンピュータと、インストールするコンピュータが異なる場合はscpか何かで転送しましょう。

インストール

rootユーザになり、「jdk-6u38-linux-x64-rpm.bin」に実行オプションをつけ実行します。

# su
# chmod +x jdk-6u38-linux-x64-rpm.bin
# ./jdk-6u38-linux-x64-rpm.bin

以上でインストールは完了です。
サーバ管理者にとってもうれしいrpmパッケージ形式でインストールされますので削除も簡単です。
yum list installed | grep java でインストールされたパッケージを確認してみましょう。


なお、javaは/usr/java以下のディレクトリにインストールされます。

環境変数を設定する

次に環境変数を設定します。
.bashrcに下記を追加します。

export JAVA_HOME=/usr/java/default
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar


ここまでできたら、試しにwhichコマンドでjavaコマンドの位置を確認し、バージョン出力をしてみましょう。

$ which java
/usr/bin/java
$ java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.13-b02, mixed mode)

上記のようなを出力ができていれば、インストール完了です。
gcjやopenjdkという文字列が含まれた結果が出力された場合は、こちらを参考にJavaを切り替えてください。


環境変数について、ちょっとだけ説明します。
JAVA_HOMEにはJava2SEがインストールされたディレクトリを指定します。
動作させるアプリケーションによっては必要になるので設定しておきましょう。

CLASSPATHにはJavaで使用しているクラスがどこにあるのか指定します。
主にサードパーティ製のライブラリなどを使用するときに使用します。

CLASSPATHの役割は、JavaVMに使用しているクラスの位置を教えることです。
JavaVMはアプリケーション実行時に使用しているクラスを、CLASSPATHを元に探索しに行きます。
CLASSPATHに値をセットしない場合、JavaVMはプログラム実行時のカレントディレクトリだけを探索対象にします。

なお、CLASSPATHはコンパイル時にも使用されるので、javacを使う人は必ず覚えておいてください

インストールしたJavaを切り替える

alternativesコマンドを使用して、javaの切り替えを行います。
Sun Javaインストール以前にOpenJDKやgcjなどをインストールしていた場合、そちらが優先して使用されます。
試しに下記のコマンドを使用して、どのJVMが使われているか調べてみてください。

$ java --version


各JavaVMごとの出力結果をまとめておきました。3番以外の出力の場合は、Oracle Javaに切り替えておきましょう。
1. GCJが使用されていた場合の出力結果

$ java --version
java version "1.5.0"
gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-3)

Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


2. OpenJDKが使用されていた場合の出力結果

$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.9) (rhel-1.57.1.11.9.el6_4-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)


3. Oracle Javaが使用されていた場合の出力結果

$java -version
java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)



3番以外の場合、下記のコマンドでJVMを切り替えます。

# su - 
# alternatives --install /usr/bin/java java /usr/java/default/bin/java 16038
# alternatives --config java

There are 3 programs which provide 'java'.

 Selection    Command
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*  2           /usr/java/default/bin/java
 + 3           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number: <切替えたいJVMの番号を入力する。ここでは2番>

これで完了です。
試しに、Javaのバージョンをチェックしてください。

javacを切り替えたい場合は、下記のコマンドを実行し、JVMの切り替えと同じ方法で切り替えてください。

# alternatives  --install /usr/bin/javac javac /usr/java/default/bin/javac 16038
# alternatives --config javac