開発を行っている際に、利用しているミドルウェアやライブラリの内部で例外が発生して、そのクラスのソースコードを調べたくなることはありませんか?
例えば、以下のような場合です。
開発者であれば、誰しもこのような経験をしたことがあると思います。ソースコードがあれば、コードを調べて原因を解析できますが、商用のミドルウェアやパッケージなどでソースコードが提供されていない場合は、ソースコードがないので解析できません。
開発元に問い合わせても、すぐには対応してもらえず、やきもきすることもしばしばあります。
オープンソースのミドルウェアやフレームワークを利用している場合でも、ソースコードをIDE(統合開発環境)に設定するのは、手間が掛かります。
また、ソフトウェアで利用されているライブラリも「commons-collection.jar」「servlet.jar」というファイル名で提供されており、利用しているソースコードのバージョンの特定が困難であったり、バージョンを特定したとしても、ソースコードの入手場所を探す必要があったりと、ソースコードの特定に非常に手間が掛かります。
フランスのEmmanuel Dupuy氏が開発するEclipseプラグイン「JD-Eclipse」を利用すれば、ソースコードが存在しない場合でも、[パッケージ・エクスプローラ]や[デバッガ]からクラスファイルへアクセスするだけで自動的にクラスファイルを逆コンパイルしてくれ、あたかもそこにソースコードがあるようにコードの中を見ることができるようになります。
商用のソフトウェアは、ものによっては、逆コンパイル(リバースエンジニアリング)を禁止しているものもあります。商用のソフトウェアでJD-Eclipseをご利用の際は、お使いのソフトウェアのライセンスをご確認ください。
以前から「JadClipse」などの逆コンパイラがありましたが、Java 5以降のバイトコード(クラスファイル)に対応していませんでした。JD-Eclipseは、Java 5以降のバイトコードでも逆コンパイルを行えることができ、アノテーションを利用したアプリケーションでも利用できます(図1)。
JD-Eclipseのライセンスは、“非商用”の利用の場合は無償で利用できます。ここで、「非商用」とは「商用のソフトウェアプロダクトに組み込んではいけない」という意味です。プロダクトに組む場合には注意が必要です。ツール自身の利用は、商用ソフトウェアの開発の場合でも問題ありません。
Eclipseのメニューの新規ソフトウェアインストールを利用して、下記のアップデートサイトを入力してプラグインをインストールしてください。
JD-Eclipseを利用する際、JadClipseなどのような逆コンパイラがすでにインストールされている場合、正しく動作しない場合があります。JadClipseを無効化するには、JadClipseプラグインをEclipseのプラグインディレクトリから削除してEclipseを再起動してください。
Pleiadesをご利用の場合は、Pleiadesのファイルを展開したディレクトリの下記の場所にJadClipseがインストールされているので、このファイルを削除してください。
次ページでは、実際に逆コンパイルをやってみましょう。生成されたソースコードも紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.