H2(1.4.187 Beta)をビルドしてEclipseで動かす
先日、H2をデバッグ実行する方法を書きました。今日は、H2をビルドしてEclipseに読み込み、テストを実行する方法についてまとめます。
次の環境で動作を確認しました。
- Mac OS X 10.10.2
- Eclipse Luna Release (4.4.0) Build id: 20140612-0600
- Apache Maven 3.1.1
- Java 1.8.0_40
1. ソースコードのダウンロードと配置
Downloadsから、「Version 1.4.187 (2015-04-10), Beta」のPlatform-Independent Zipをダウンロードします。
Eclipseのworkspaceディレクトリに、h2-2015-04-10.zipを展開します。h2というディレクトリが生成されるので、他のバージョンを展開する時のためにh2-2015-04-10へ名前を変えておくと便利です。
展開したディレクトリに移動します。
% cd h2-2015-04-10
2. JAVA_HOME環境変数の設定
ローカルマシンで利用可能なJavaのバージョンを確認します。
% /usr/libexec/java_home -V Matching Java Virtual Machines (6): 1.8.0_40, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home [...] 1.7.0_75, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
JAVA_HOMEの環境変数を確認し、設定されていない場合は設定します。H2は、JDK 1.6以上であればビルドできます。ここでは1.8.0を利用します。
% echo $JAVA_HOME % export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_40` % echo $JAVA_HOME /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
H2はJavaでビルドを行うため、この設定が必要です。プロジェクトのルートにあるbuildスクリプトを実行すると、src/tools/org/h2/build/Build.javaの内容が実行されます。
3. H2をビルドする
プロジェクトルートのbuild.shを実行します。入力待ちの状態になるので、ターゲット「jarClient」を入力し、Enterキーを押します。
% ./build.sh - Shell mode. Type the target, then [Enter]. Just [Enter] repeats the last target. build> jarClient
初回ビルド時には、Mavenで依存ライブラリがダウンロードされるので、少し時間がかかります。自分の環境では90秒くらいでした。
ビルドが完了したら、Ctrl-Cで終了します。
4. Eclipseでプロジェクトをインポートする
Eclipseを起動し、[File]→[New]→[Java Project]を選択します。[New Java Project]ウィンドウで、次のように設定します。
- Project name: 下記の設定をすると自動補完されます
- Use default location: チェックを外す
- Location: 先ほどH2をビルドしたディレクトリ
設定後、[Next]ボタンを押します。
この時、「The output folder has changed. Do you want to remove all generated resources from the old location[...]」というダイアログが表示されるかもしれません。Eclipseがデフォルトで出力先にするbinディレクトリに、先ほどのビルドによる生成物が存在するので、.classファイルが存在するtempディレクトリをEclipseが出力先として選び直すそうです。その上で、binにあったものを消していいかどうかを尋ねています。どちらでもよいですが、ここでは「No」にしておきます。
Java PerspectiveのPackage Explorerペインに、作成したプロジェクトが表示されている様子を次に示します。
5. tools.jarへの参照を追加する
上の図を見ると、プロジェクトにエラーが出ています。Problemsペインで確認すると、com.sun.javadocパッケージのクラスを読み込めていません。そこで、tools.jarをビルドパスに追加します。
プロジェクトを右クリックし、コンテキストメニューから[Build Path]→[Configure Build Path]を選択します。[Add External JARs]ボタンを押します。JDKのルートのlibディレクトリにあるtools.jarを選択します。
プロジェクトにtools.jarが読み込まれると、エラーが消えます。