Ubuntu 11.04にはOpenJDKというJavaがすでにインストールされています。
端末(コマンドプロンプト)から

			java -version
		
コマンドを打ち込んでみると

			java version "1.6.0_22"
			OpenJDK Runtime Environment (IcedTea6 1.10.1) (6b22-1.10.1-0ubuntu1)
			OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
		

を表示しました。

Windowsをいじっている人にとっては聞かないJavaです。
互換Javaのようなものかと思いきや IT用語辞典 を見ると
「OpenJDKとは、JDKをオープンソース化しようというSun Microsystemsのプロジェクト、またはそのソースコードの名称である。」
とあります。
それならsunのJDKは本家本元ではないのかと思いきや以下の記事がありました。

Sun社のJDK7、OpenJDK、そしてIcedTea:曖昧さの回避
どうもSunのJDKとOpenJDKがそれぞれ主導権争いをしているようにも見えます。
元祖か本家かというような感じ?

このあたり調べても面倒なので、未然にトラブルを防ぐためにも
windowsで使われているSunのJDKをインストールすることにしました。

以下にインストール方法を記述します。記憶を頼りにたどっているので、もし間違っていたらごめんなさい。
自分がやったらこうなった程度のものだと思ってください。

まず、

1. oracle(sun)のサイト からJDKをダウンロードします。
CentOSなどのRedhat系ならPRMでもいいのだろうけど、Linux x64 - Self Extracting Installerをダウンロードします。

2 ダウンロードしたディレクトリから/usr/lib/jvmへコピーします。
以下のコマンドを入力。

			sudo cp /home/(ログインしている)ユーザー/ダウンロード/jdk-6426-linux-x64.bin usr/lib/jvm/
		

なお、このディレクトリはroot権限がないと、移動やインストールが出来ないため、「sudo」コマンドを入力します。
パスワードを求められるのでパスワードも入力します。

3 展開します。 端末で以下のコマンドを入力します。

			cd /usr/lib/jvm
			sudo chmod +x ./jdk-6u26-linux-x64.bin
			sudo ./jdk-6u26-linux-x64.bin
		

入力後

			Press Enter to continue..... 
		
が返ってきたらEnterキー押下。

			Done.
		
表示で展開成功。

4 展開するだけではインストールしたことにならないので環境変数を入力します。

/home/(ログインしている)ユーザー/.bashrc
をテキストエディタで開き、最下部に以下の値を入力します。
(/home/(ログインしている)ユーザー/.profileでも起動はするが一般的ではないっぽい。)

			JAVA_HOME=/usr/lib/jvm/jdk1.6.0_26
			PATH=$PATH:$JAVA_HOME/bin
			CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/tools.jar
		

入力したら保存して閉じます。

5 update-alternativesでJDKを切り替える。

と、ここまででいいはずなのですが、Ubuntuはupdate-alternativesによってOPEN JDKが標準javaとなるよう
指定されているので、これをSun JDKに切り替える必要があります。

端末で以下を入力します。

			update-alternatives --display java
		

すると、

			java - 自動モード
			リンクは現在 /usr/lib/jvm/java-6-openjdk/jre/bin/java を指しています
			/usr/lib/jvm/java-6-openjdk/jre/bin/java - 優先度 1061
			スレーブ 
			java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz
			現在の	'最適' バージョンは '/usr/lib/jvm/java-6-openjdk/jre/bin/java' です。
		

が表示されます。
update-alternativesの詳細自体はここでは詳しく述べませんが、
ようするにjavaというグループにjava-6-openjdkが紐づけられているということです。

javaにはいくつJDKが紐づけられているか確認するため、以下を端末で入力してみました。

			update-alternatives --config java
		

すると、以下が返ってきました。

			リンクグループ java に 1 つの alternative のみがあります: /usr/lib/jvm/java-6-openjdk/jre/bin/java
			設定は行いません。
		

端末で以下を入力し、SunJDKを登録します。

			sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_26/bin/java 16026
		

端末で以下を入力し、SunJDKを設定します。

			update-alternatives --config java
		

すると、以下のコメントが返ってきます。

			alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。
			選択肢 
			パス 優先度 状態
			------------------------------------------------------------
			* 0 /usr/lib/jvm/jdk1.6.0_26/bin/java 16026 自動モード
			1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動モード
			2 /usr/lib/jvm/jdk1.6.0_26/bin/java 16026 手動モード
			現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 
		

SunのJDKが選択されていたので、Enterキーを押下しました。
端末で以下を入力し、確認。

			update-alternatives --display java
		

すると以下のメントを表示します。

			/usr/lib/jvm/jdk1.6.0_26/bin/java - 優先度 16026
			現在の '最適' バージョンは '/usr/lib/jvm/jdk1.6.0_26/bin/java' です。
		

端末で以下を入力

			java -version
		

以下を表示したことにより、sunのjavaがインストールされていることを確認しました。

			java version "1.6.0_26"
			Java(TM) SE Runtime Environment (build 	1.6.0_26-b03)
			Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, 	mixed mode)
		

と、ここまでならいいのですが、FireFoxを起動して、javaのバージョンを確認するとOpen JDKのバージョン 1.6.22を表示します。

これもSun JDKに設定を変えてみました。

どうやったかは次回へ

Original Posted 平成23(2011)/6/20

投稿日:平成25(2013)/7/1