「とことん作って覚える!Java入門」でEclipseのバージョンを変えるとサンプルが動かない件について
日経ソフトウエアへ連載させていただいている「作って覚える!Java入門」で、Eclipseのバージョンが違うとサンプルが動作しない、というご質問を読者のみなさまからいただいています。
現在は、配布ファイルのサイズを減らすために、Eclipse3.1.2 に付属するライブラリに直接リンクする構成にしてしまっているのが原因です。
本連載は、連載開始当時の最新版である Eclipse3.1.2 を前提に執筆しています。それ以降、またはそれ以前のバージョンをご利用の方は、ちょっと面倒ですが以下の手順でライブラリの設定を変更していただければ動作するようになります。
来月からはライブラリも一緒に配布するなど、根本的な対策を取りたいと考えています。ご迷惑おかけして申し訳ありませんが、ひとまずこれでしのいでいただければと思います。
ライブラリ参照の変更手順
1.次のサイト(http://download.eclipse.org/eclipse/downloads/drops/R-3.1.2-200601181600/index.php)から eclipse-SDK-3.1.2-win32.zip をダウンロードして任意のフォルダに展開する。
2.展開したフォルダの中から、以下の7個のファイルを任意のフォルダにコピーする。(たとえば、c:/workspace/libというフォルダを作成してそこにコピーする)
- /eclipse/plugins/org.eclipse.jface_3.1.1.jar
- /eclipse/plugins/org.eclipse.osgi_3.1.2.jar
- /eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.1.2.jar
- /eclipse/plugins/org.eclipse.core.commands_3.1.0.jar
- /eclipse/plugins/org.eclipse.core.resources.compatibility_3.1.0.jar
- /eclipse/plugins/org.eclipse.core.runtime_3.1.2.jar
- /eclipse/plugins/org.eclipse.jface.text_3.1.2.jar
つまり、構成は以下のようになります。
- c:/workspace/lib/org.eclipse.jface_3.1.1.jar
- c:/workspace/lib/org.eclipse.osgi_3.1.2.jar
- c:/workspace/lib/org.eclipse.swt.win32.win32.x86_3.1.2.jar
- c:/workspace/lib/org.eclipse.core.commands_3.1.0.jar
- c:/workspace/lib/org.eclipse.core.resources.compatibility_3.1.0.jar
- c:/workspace/lib/org.eclipse.core.runtime_3.1.2.jar
- c:/workspace/lib/org.eclipse.jface.text_3.1.2.jar
3.動作しないEclipse上のプロジェクト(MyBrowser0609-final)等のプロパティを開く。
4.左のメニューから「Javaのビルドパス」を選択し、右のタブから「ライブラリ」を選択して表示される。
5.現在表示されている以下の7つのファイルを選択し、「除去」ボタンで一度削除する。
- org.eclipse.jface_3.1.1.jar
- org.eclipse.osgi_3.1.2.jar
- org.eclipse.swt.win32.win32.x86_3.1.2.jar
- org.eclipse.core.commands_3.1.0.jar
- org.eclipse.core.resources.compatibility_3.1.0.jar
- org.eclipse.core.runtime_3.1.2.jar
- org.eclipse.jface.text_3.1.2.jar
6.右側のボタンから「外部JARの追加」を押し、手順2でコピーした7個のJarファイルを選択しなおす。
7.プロパティダイアログのOKを押す。
これでライブラリの参照が変更されて動くようになるはずです。
ただし、Eclipse 3.1.1 以前(本連載の前提より古いバージョン)をご利用の方は、もう一手順必要になります。
8.手順2でコピーしたファイルの中から org.eclipse.swt.win32.win32.x86_3.1.2.jar を展開する。(Jarファイルは実はzip形式なので、拡張子をzipに変更すれば簡単に展開できます。
9.展開してできたファイルの中から、swt-win32-3139.dll を C:/Program Files/Java/jdk1.5.0_06/bin (1.5.0_06 の部分はお使いのJavaのバージョンに合わせてください)
これでOKです。
【補足】swt-win32-3139.dll というファイルは、SWT が Windows の GUI を表示するために使うライブラリです。SWT を利用する場合はこれがクラスパスの通った場所にあるか、Javaの起動オプションで -Djava.library.path="C:\Program Files\Java\jdk1.5.0_06\bin" と明示的に指定するなどの必要があります。Eclipseのバージョンが古い場合、古い DLL が使われてしまって整合性がとれなくなるため、DLL も別途コピーして再指定しなければならないのです。