Eclipseのプラグインを開発する上でややこしいと思うところ(その1:ライブラリの設定編)

Eclipseプラグインを作るうえでよくはまるところを書いていけばきっとうれしい人がいるだろうと言う考えの下、淡々と綴って行く系のエントリを始めます。自分も実際の挙動を見ながらエントリを綴って行きますが、間違いがあるかも分かりません。そのときはぜひツッコミをください。

今回はプラグインの実行に必要なライブラリの設定編。

プラグインの実行に必要なライブラリの設定は結構はまるポイントだと思ってます。なぜなら普通のJavaでWebアプリを作っている人はライブラリの設定は『WEB-INF/lib以下にJARを入れること』など、J2EEのお約束があるので、それほど悩まないと思います。mavenを使っている人はDependencyにライブラリを記述すればライブラリのダウンロードから開発時のクラスパスの設定まで自動でやってくれますよね。mavenを使っていない環境の人はそのプロジェクト上で右クリック->プロパティを選んで、プロジェクトの設定を開き、Java Build Pathを選んでライブラリの追加なんてことをするんじゃないでしょうか。なので、ライブラリを追加したときにJava Build Pathに追加するという流れが頭の中にあると思います。プラグイン開発の場合、Java Build Pathにのみ追加してしまうと実際に起動構成を作って別ワークベンチ上でプラグインを実行するとうまく動かないはずです。

プラグインの場合は実行時のクラスパスをMETA-INF/MANIFEST.MFのBundle-ClassPathに書かなければなりません。MANIFESTエディタを使用する場合はRuntimeタブの右下のClassPathのところです。ここにライブラリを追加しておかなきゃいけない。この手順をよく忘れて、NoClassDefErrorとか投げられてなぜーんとか言って悩む。この流れはよくない。

えぇ、ちょっとネタに困ってFAQっぽいこと書いているわけじゃないからね。