日別アーカイブ: 2010/7/17

JDK 切り替え後の Eclipse 設定変更 (CentOS 5.5 64bit)

前回の「JDK 1.6.x のインストール (CentOS 5.5 64bit) 」で、これまで使用していた Java を OpenJDK から Sun JDK に切り替えました。

赤び~環境において、これにより影響を受けそうなアプリケーションは
  ・Eclipse
  ・Tomcat
  ・Glassfish
といったところでしたので、動作確認を行いました。

結論から言うと、Tomcat と Glassfish は問題なしで Eclipse のみ設定変更が必要でした。
今回は Eclipse に必要となる設定変更をまとめてみます。

1. インストール済みの JRE

Eclipse 自体の起動はパスに定義された java により問題なく行われます。
変更が必要となるのは Eclipse 上で作成したプロジェクトが使用する JRE (JDK) のパスです。

「ウィンドウ」-「設定」メニューから設定画面を表示し、「Java」-「インストール済みの JRE」メニューを選択します。

20100717_01

「インストール済みの JRE」が OpenJDK のみとなっていますので、Sun JDK を追加設定する必要があります。
「追加」ボタンを選択し、JRE の追加画面を表示します。

20100717_02

「標準VM」を指定して「次へ」ボタンを選択すると、JRE の追加画面に遷移します。

20100717_03

「JREホーム」に「/usr/java/default」を指定してください。自動的に「JRE 名」が「jdk_1.6.0_21」と設定されます。
問題なければそのまま「完了」ボタンを選択してください。インストール済みの JRE 画面に遷移します。

「インストール済みの JRE」が「java-1.6.0-openjdk ・・・」と「jdk_1.6.0_21」の二行に増えていますが、「java-1.6.0-openjdk ・・・」はすでにパッケージを削除済みですので Eclipse からも削除します。
「java-1.6.0-openjdk ・・・」を選択して「除去」ボタンを選択してください。

20100717_04

以上で Eclipse 本体の設定は完了です。

2. 作成済みプロジェクトの設定変更

次に、作成済みのプロジェクトについても設定変更を行う必要があります。

エラーとなっているプロジェクトを選択し、右クリックメニューから「プロパティ」を選択してください。「Java のビルド・パス」メニューを選択すると画面上部に「ビルド・パス・エントリーが欠落しています:・・・」と表示されています。

20100717_05

「ライブラリー」タブを選択すると「JRE システム・ライブラリー」がエラーとなっていますので、選択後「編集」ボタンを選択してください。ライブラリーの編集画面に遷移します。

20100717_06

「ワークスペースのデフォルト JRE」を指定し「完了」ボタンを選択すると、再ビルドが行われてプロジェクトのエラーが解消されます。

この作業を全てのプロジェクトで実施後、念のためプロジェクトのクリーンを行って設定変更作業は完了します。

[ END ]

JDK 1.6.x のインストール (CentOS 5.5 64bit)

2013/4/26 追記
最新バージョンについては以下を参照してください。
@see 「Java SE 7 のインストール (CentOS 6.3 64bit)

試用感覚で2ヶ月間ほど OpenJDK を使いつづけてみましたが、特にこれといった問題には直面しませんでした。(「Eclipse インストールと日本語化 (CentOS 5.4 64bit) 編 」参照)
このまま使いつづけても良さそうですが、気づけば Sun が提供する JDK はバージョンが 1.6.0_21 まで進んでいました。Sun 製 JDK にバグが多いのか、それとも OpenJDK のパッチ速度が遅いのか判断に迷うところですが、そろそろ使い慣れた(?) JDK に復帰することとしました。

1. JDK のダウンロード

Sun (今は買収されて Oracle ですが。。。) のダウンロードページ Sun Developer Network (SDN) から最新の JDK をダウンロードします。
実行形式 (bin) 版と RPM 版がありますが、今回は RPM 版にしました。
本日時点の 64bit Linux 版の最新版は jdk-6u21-linux-x64-rpm.bin でした。

2. JDK のインストールとパスの設定

2.1. JDK のインストール

RPM 版についても実行形式版で提供されていますので、ダウンロードしたファイルを実行するだけでインストールは完了します。

# chmod a+x jdk-6u21-linux-x64-rpm.bin
# ./jdk-6u21-linux-x64-rpm.bin

インストール先は /usr/java 配下となります。

2.2. JDK へのパスを設定

/etc/profile にインストールした JDK へのパス定義を追加します。

/etc/profile への追記内容

# JDK
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin

/usr/java/default は 最後にインストールされた JDK へのリンクとなっています。(正確には /usr/java/latest へのリンクで、latest が JDK 本体へのリンクとなっています)

JAVA_HOME を /usr/java/default としているのは、将来、最新の JDK をインストールした場合でもパス設定を変更不要とするためです。

2.3. /etc/profile の有効化

変更した /etc/profile を有効化します。

$ source /etc/profile

3. OpenJDK のアンインストール

OpenJDK がインストールされたままだと /usr/bin 配下に javac や javadoc など多数のファイル (リンク) が存在しています。
前項でパス定義を追加してもこのままでは OpenJDK が読み込まれてしまうため、OpenJDK のアンインストールをおこないます。

3.1. インストール済み OpenJDK のパッケージ確認

yum コマンドでアンインストールするため、OpenJDK のパッケージ名を確認します。

# rpm -qa | grep java
sun-javadb-core-10.5.3-0.2
java-1.6.0-openjdk-devel-1.6.0.0-1.11.b16.el5
sun-javadb-demo-10.5.3-0.2
java-1.6.0-openjdk-1.6.0.0-1.11.b16.el5
sun-javadb-common-10.5.3-0.2
sun-javadb-docs-10.5.3-0.2
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
sun-javadb-javadoc-10.5.3-0.2
tzdata-java-2010i-1.el5
sun-javadb-client-10.5.3-0.2

java-1.6.0-openjdk-devel、java-1.6.0-openjdk、java-1.4.2-gcj-compat が不要となりそうです。

3.2. OpenJDK パッケージのアンインストール

yum コマンドで洗い出したパッケージを削除します。

# yum remove java-1.6.0-openjdk-devel

これで java-1.6.0-openjdk-devel パッケージの削除は完了です。

同様に java-1.6.0-openjdk と java-1.4.2-gcj-compat も削除するつもりでしたが、OpenOffice 他多数のパッケージと関連していたため削除はいったん見送りました。

3.3. /usr/bin 配下のリンク先変更

8/1 追記
alternatives コマンドでリンク先を切り替えた方がスマートに実現できるため、別途以下の記事を参照してください。
@see 「alternatives コマンドを使用した java バージョンの切り替え

java-1.6.0-openjdk と java-1.4.2-gcj-compat を残したため、/usr/bin 配下のリンク先を変更します。

まずは現在のリンク状況を確認します。

# cd /usr/bin
# ls -l java*
lrwxrwxrwx 1 root root 22 4月 18 18:11 java -> /etc/alternatives/java
lrwxrwxrwx 1 root root 28 7月 17 20:29 javaws -> /usr/java/default/bin/javaws

/usr/bin/java のみ変更すれば問題なさそうです。

# rm java
# ln -s /usr/java/default/bin/java java

変更後のリンク先を確認します。

# ls -l java*
lrwxrwxrwx 1 root root 26 7月 17 20:39 java -> /usr/java/default/bin/java
lrwxrwxrwx 1 root root 28 7月 17 20:29 javaws -> /usr/java/default/bin/javaws

4. 動作確認

version オプションを使用して Sun JDK が動作していることを確認します。

$ java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode)

$ javac -version
javac 1.6.0_21

java、javac コマンド共に Sun JDK が動作していることが確認できました。

[ END ]