Re - ImageJで学ぶ!: 第41回 ImageJのソースコード分解(Eclipseを用いたImageJソースコードのコンパイル)で学ぶ!

2015年10月21日水曜日

第41回 ImageJのソースコード分解(Eclipseを用いたImageJソースコードのコンパイル)で学ぶ!

lmageJの開発者たちは、lmageJのプラグインのみではなく、根幹となる部分のソースコードも公開しています。
また、開発者のためのドキュメントが用意されており、細部にわたってlmageJ作成のためのクラスやメソッドの解説がされています。ただし、ImageJその構成のシンプルさへのこだわりから、lmageJを開発するための道具やその機能も必要最低限であり、複雑なプログラムの解析は独自の手段を講じる必要があります。

今回はlmageJそのものを開発するための道具の1つとして「Eclipse」というオープンソースの統合開発環境(integrated development environment:IDE)を用いて、より高度なImageJを用いた解析のための準備方法を紹介します。

Eclipseとは


エンドユーザが、ImageJを用いてオリジナルのプログラムを開発する場合、プラグインもしくはマクロの開発用のエディタしか与えられていません。そのため、ImageJそのものを開発する場合は、らかのJavaの開発環境が必要となります。また、プラグイン開発も、ImageJのエディタだけでは、他のクラスライブラリの読み込みなどができず、苦労することもあります。

このような課題を解決してくれるのが、Eclipseです。

Eclipseは、IBM社が中心となって開発したマルチプラットフォームの無償のIDEです。
ライセンスは、Eclipse Public Licenseが適用されています。
特に、Javaプログラマーの間で人気があり、高機能なオープンソースの開発ツールであることから、ImageJの開発者コミュニティでも愛用されています。

Eclipseのインストール方法と日本語化


まず、始めの準備として、Java開発環境をPCにインストールする必要があります。〔第2回・第40回のJava実行・開発環境のインストール方法を参照〕。

次に、Eclipseのダウンロードページ https://eclipse.org/downloads/)から、最新バージョンをダウンロードします。2015/10現在は、Marsが最新版になっています。今回はインストーラを使ってみます。


次に、開発したい用途に合わせて、Eclipseの種類を選択して、ダウンロードしてください。今回は、JavaEEなどのパッケージを本格的に使う人向けのJavaEEバージョンにしました。

インストールしたいフォルダを指定して、そのままインストールしましょう。
この操作の時に、workspaceフォルダの作成について問われます。このworkspaceフォルダというのは、ソースコードを格納する場所になるので、非常に重要です。わかりやすいところに作成しましょう。また、クラウドなどを利用している方は、Drop boxなどに、このworkspaceを作成することもできます。

JDKのパスは通しましたか?
→コマンドプロンプトやターミナルで"javac"と入力して、エラーメッセージは出ませんね?

(パス設定が成功している時の"javac"実行結果)

そしたら、まずは、eclipseを起動してみましょう!

こんな画面から、、

初期起動画面になり、右上のworkbenchから、、

実際のエディタ画面に遷移してください。

ここで、デフォルトでは、Eclipseのインターフェースは英語ですので、希望する方は、この操作画面(GUI)を日本語化することもできます。
これには、Pleiadesというパッケージを使います。

OSがWindowsの方は、このサイトの以下のページから、バージョンにあったものを選び、ダウンロードしましょう。

(Windows 用)

(Java Full Editionをダウンロード)

Windowsの方で、これ以降の日本語化の方法は、こちらのサイトが参考になります。

OSがMacの方は、Pleiadesのページの中段にあるプラグインをダウンロードします。

(安定版を選択)

このファイル(pleiades_x.x.x)を解凍し、内容物であるfeaturesフォルダとpluginsフォルダの中身を、そのままEclipse.appの下の同じ名前のフォルダ内に追加します
この操作を行うためには、インストールされたEclipse.appのパッケージを展開してから(Finderで開いて、右クリックするなど)、Contents>Eclipseフォルダにある各フォルダにコピーしましょう。

(Eclipse.Appパッケージを展開)


こちらも参考にしてください。

このあと、Contents>Eclipseフォルダにあるeclipse.iniをテキストエディタで開き、一番最後の行に、以下の文章を追加して、上書きします。

-Xverify:none
-javaagent:../Eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

この作業によって、Eclipseが日本語環境で動作するようになります。もともと、PleiadesはEclipseのプラグインですので、別のプラグインを使う方法もありますので、好きなやり方で試してみてはいかがでしょうか。

(日本語化)

Eclipseを用いたImageJプロジェクトの作成


まず、ImageJのソースコードダウンロードサイト (http://rsb.info.nih.gov/ij/download/src/)から、ImageJのソースコード“ij150c-src.zip” をダウンロードします。(執筆時の最新バージョンは1.50c)

解凍すると、sourceフォルダが出現するので、適当なディレクトリに保存します

次にEclipseを起動し、ファイルメニューから〈新規ロジェクト〉を選択し、Javaプロジェクトを作成します。



プロジェクト名(例:lmageJ1.5)として、そのまま次へ。


「追加ソースのリンク」から、展開しておいた"source"フォルダを指定します。


次に、組み込みおよび除外フィルターにパターンを、以下のように指定します。


そうすると、プロジェクトの内容として、"src"と"source"ができているはずなので、使わない"src"フォルダは削除してしまってください。

(利用しない"src"を削除)

ここまでで、基本的なImageJプロジェクト作成は完了です。
早速、source>ij>imageJ.javaを選択して、画面上の緑の右三角ボタンから、Java アプリケーションとして実行してみてください。EclipseからImageJが起動します。

(EclipseからImageJ起動)

上記のプロジェクト作成後、EclipseがImageJのソースコードをコンパイルしてくれるので、実行が可能な状態になっているのですが、もし、この時点で赤いバツ印などが表示されているときは、エラー表示を確認しましょう。

ImageJは、きちんと開発されているので、エラーの原因はほぼほぼ、ユーザーの設定ミスです。

バージョンによっては、com. sun.toolsを型に解決できません」というようなエラー警告が起こることがあります。
これは端に、JDKフォルダ内のlibフォルダ下のtools.jarファイルが認識されていないというエラーなので、プロジェクトを右クリックして、プロパティから、「ライブラリー」タブの〈外部Jar追加〉をクリックして、JDKフォルダ下のtools.jarを選択してエラーを解決します。
他の「***を型に解決できません」というエラーも同様の方法で解決できます。


外部Jar追加の画面

ImageJ開発環境構築は以上です。

構築のやり方はいろいろありますが、今回はソースコードを参照する方法をご紹介しました。より詳細な説明はこちらもご参照ください。
http://imagejdocu.tudor.lu/doku.php?id=howto:plugins:the_imagej_eclipse_howto

他にも、Gitからクローンをインポートする方法なども紹介されていますね。

もし、自分で改良して作ったImageJをEclipseからリリースするときは、プロジェクトを選択した状態で、Eclipseメニューの、ファイル>エクスポートから、Jarファイルでエクスポートをするように選択して、Jarファイルを保存する場所を指定してから、そのまま進み、最後に、マニフェストを設定するところで、メインクラスを参照させてあげて、完了すると、自分で改良したImageJのJarファイルができます。

(メインクラスの指定を忘れないようにしましょう)

Jarファイルの実行方法は、例えば、デスクトップにIJ.jarとして作った場合は、まずターミナルやコマンドプロンプトを立ち上げて、"cd"コマンドで、デスクトップまで移動して、それから、〜ユーザー名$ java -jar IJ.jar で起動できます。

本稿でご紹介したEclipse非常に優秀なIDEなので、ImageJだけでなく、いろいろなアプリケーションの開発に役立ててください。

次回も続けてImageJのプラグイン開発について述べます。

Reference
  • 山本修司:ImageJで学ぶ実践医用・バイオ画像処理.INNERVISION(23・9) 2008, p113-115」

0 件のコメント:

コメントを投稿