javaの開発環境JDKをインストール ~ ubuntu Linux

(2009年12月22日)
ubuntu8.10のデスクトップ版にはjavaの開発環境のjdkが入っていなかったのでインストールしました。 *javaのランタイム(jre)は最初から入っていました。
$ java --version
java version "1.5.0"
gij (GNU libgcj) version 4.3.2

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.
まず、javacコマンドを実行してjdkのパッケージ名一覧を見てみます。
$ javac
プログラム 'javac' は以下のパッケージで見つかりました:
 * gcj-4.2
 * java-gcj-compat-dev
 * jikes-sablevm
 * kaffe
 * ecj
 * jikes-sun
 * gcj-4.3
 * cacao-oj6-jdk
 * jikes-classpath
 * openjdk-6-jdk
 * jikes-kaffe
 * sun-java5-jdk
 * sun-java6-jdk
次の操作を試してください: sudo apt-get install
bash: javac: command not found
結構色々あるね・・・まぁsunの最新バージョンが一番王道だと思うのでsun-java6-jdkをインストールすることにします。
インストールはapt-getコマンドでしました。
$ sudo apt-get install sun-java6-jdk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  gsfonts-x11 odbcinst1debian1 sun-java6-bin sun-java6-jre unixodbc xutils-dev
提案パッケージ:
  sun-java6-demo sun-java6-doc sun-java6-source sun-java6-plugin
  ia32-sun-java6-plugin sun-java6-fonts libmyodbc odbc-postgresql libct1
以下のパッケージが新たにインストールされます:
  gsfonts-x11 odbcinst1debian1 sun-java6-bin sun-java6-jdk sun-java6-jre
  unixodbc xutils-dev
アップグレード: 0 個、新規インストール: 7 個、削除: 0 個、保留: 0 個。
54.7MB のアーカイブを取得する必要があります。
この操作後に追加で 162MB のディスク容量が消費されます。
続行しますか [Y/n]? y
取得:1 http://jp.archive.ubuntu.com intrepid-updates/multiverse sun-java6-jre 6-14-0ubuntu1.8.10 [6421kB]
取得:2 http://jp.archive.ubuntu.com intrepid/main odbcinst1debian1 2.2.11-16build2 [66.3kB]
取得:3 http://jp.archive.ubuntu.com intrepid/main unixodbc 2.2.11-16build2 [295kB]
取得:4 http://jp.archive.ubuntu.com intrepid-updates/multiverse sun-java6-bin 6-14-0ubuntu1.8.10 [29.1MB]
取得:5 http://jp.archive.ubuntu.com intrepid-updates/multiverse sun-java6-jdk 6-14-0ubuntu1.8.10 [18.5MB]
・・・
Processing triggers for man-db ...
Processing triggers for menu ...
Processing triggers for doc-base ...
Processing 1 added doc-base file(s)...
Registering documents with scrollkeeper...
odbcinst1debian1 (2.2.11-16build2) を設定しています ...

unixodbc (2.2.11-16build2) を設定しています ...

xutils-dev (1:7.4+3) を設定しています ...
gsfonts-x11 (0.20ubuntu1) を設定しています ...

sun-java6-bin (6-14-0ubuntu1.8.10) を設定しています ...

sun-java6-jre (6-14-0ubuntu1.8.10) を設定しています ...

sun-java6-jdk (6-14-0ubuntu1.8.10) を設定しています ...

Processing triggers for libc6 ...
ldconfig deferred processing now taking place
Processing triggers for menu ...
これでインストールは完了です。途中でライセンス確認画面とjreの確認画面(下の画像)が出ました。
jreは元々ubuntuに入ってると最初に書きましたけど、最新バージョンの1.6.0も入れてくれるみたいなので同時にインストールしました。
ubuntuにjdkインストール

javaソースのコンパイルコマンドjavacのバージョン情報を確認してみます。
$ javac -version
javac 1.6.0_14
次にテストプログラム(helloWorld.java)をコンパイルしてみます。
$echo helloWorld.java 

class helloWorld {
  public static void main(String[] args) {
    System.out.println("Hello World!(ubuntu)");
  }
}

$ javac helloWorld.java 
helloWorld.javaのコンパイルに成功するとhelloWorld.classというクラスファイルができます。
javaコマンドでこのクラスファイルを実行してみます。
$ java helloWorld
Hello World!(ubuntu)
コンパイル~実行まで正常に動作しているようです。
ただ、jreのバージョンを確認してみたら新規にインストールした1.6になっていません。
$ java -version
java version "1.5.0"
gij (GNU libgcj) version 4.3.2

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.
既存のjreが使われているようで新規インストールしたjre1.6は無視されているみたいです。
ですので、update-alternativesコマンドで使用するjreを切り替えます。
*update-alternativesコマンドでは複数のバージョンを持つプログラム・コマンドツールを切り替えることができます。
$ sudo update-alternatives --config java

`java' を提供する 3 個の alternatives があります。

  選択肢       alternative
-----------------------------------------------
          1    /usr/bin/gij-4.3
*+        2    /usr/lib/jvm/java-gcj/jre/bin/java
          3    /usr/lib/jvm/java-6-sun/jre/bin/java
ありました。3番が新規インストールしたjreみたいなので選択します。
デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください: 3
Using '/usr/lib/jvm/java-6-sun/jre/bin/java' to provide 'java'.
もう一度jreのバージョンを確認します。
$ java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode, sharing)
変更が確認できました。
Webサービス by Yahoo! JAPAN