ユカイ、ツーカイ、カイハツ環境!
連載インデックスへ
ユカイ、ツーカイ、カイハツ環境!(13)

究極の問題解析ツール、逆コンパイラJD-Eclipseとは


岡本 隆史
2010/3/8


ソースコードがなくても大丈夫?


今回の主な内容

ソースコードがなくても大丈夫?
JD-Eclipseは、Java 5以降に対応! しかも自動!!
注意! 「商用ソフトウェアの場合は、
  そのライセンスを確認」

注意! 「JadClipseなどはアンイストールしておこう」
やってみよう! 自動逆コンパイル
逆コンパイルされたソースコードは、どうなっている?
デバッガと組み合わせると、真価を発揮
トラブル解析に究極の力を発揮

 開発を行っている際に、利用しているミドルウェアライブラリの内部で例外が発生して、そのクラスソースコードを調べたくなることはありませんか?

 例えば、以下のような場合です。

  • ほかのチームが開発したモジュールのメソッドが仕様通りの動作をしない
  • 処理に時間がかかっているが、何の処理に時間がかかっているのか分からない
  • アプリケーションが応答しなくなり、どこかで停止しているのだが、どこで停止しているか分からない

ソースコードがないため、“やきもき”していませんか?

 開発者であれば、誰しもこのような経験をしたことがあると思います。ソースコードがあれば、コードを調べて原因を解析できますが、商用のミドルウェアやパッケージなどでソースコードが提供されていない場合は、ソースコードがないので解析できません。

 開発元に問い合わせても、すぐには対応してもらえず、やきもきすることもしばしばあります。

オープンソースでも、対応するソースコードを探すのは大変

 オープンソースのミドルウェアやフレームワークを利用している場合でも、ソースコードをIDE(統合開発環境)に設定するのは、手間が掛かります

 また、ソフトウェアで利用されているライブラリも「commons-collection.jar」「servlet.jar」というファイル名で提供されており、利用しているソースコードのバージョンの特定が困難であったり、バージョンを特定したとしても、ソースコードの入手場所を探す必要があったりと、ソースコードの特定に非常に手間が掛かります。

JD-Eclipseは、Java 5以降に対応! しかも自動!!

 フランスのEmmanuel Dupuy氏が開発するEclipseプラグイン「JD-Eclipse」を利用すれば、ソースコードが存在しない場合でも、[パッケージ・エクスプローラ]や[デバッガ]からクラスファイルアクセスするだけで自動的にクラスファイルを逆コンパイルしてくれ、あたかもそこにソースコードがあるようにコードの中を見ることができるようになります。


注意! 「商用ソフトウェアの場合は、そのライセンスを確認」

商用のソフトウェアは、ものによっては、逆コンパイル(リバースエンジニアリング)を禁止しているものもあります。商用のソフトウェアでJD-Eclipseをご利用の際は、お使いのソフトウェアのライセンスをご確認ください。

 以前から「JadClipse」などの逆コンパイラがありましたが、Java 5以降のバイトコード(クラスファイル)に対応していませんでした。JD-Eclipseは、Java 5以降のバイトコードでも逆コンパイルを行えることができ、アノテーションを利用したアプリケーションでも利用できます(図1)。

図1 逆コンパイルされたアノテーション
図1 逆コンパイルされたアノテーション

JD-Eclipseのライセンス

 JD-Eclipseのライセンスは、“非商用”の利用の場合は無償で利用できます。ここで、「非商用」とは「商用のソフトウェアプロダクトに組み込んではいけない」という意味です。プロダクトに組む場合には注意が必要です。ツール自身の利用は、商用ソフトウェアの開発の場合でも問題ありません。

JD-Eclipseのインストール

 Eclipseのメニューの新規ソフトウェアインストールを利用して、下記のアップデートサイトを入力してプラグインをインストールしてください。

注意! 「JadClipseなどはアンイストールしておこう」

JD-Eclipseを利用する際、JadClipseなどのような逆コンパイラがすでにインストールされている場合、正しく動作しない場合があります。JadClipseを無効化するには、JadClipseプラグインをEclipseのプラグインディレクトリから削除してEclipseを再起動してください。

Pleiadesをご利用の場合は、Pleiadesのファイルを展開したディレクトリの下記の場所にJadClipseがインストールされているので、このファイルを削除してください。
  • eclipse/dropins/Jadclipse/eclipse/plugins/net.sf.jadclipse_x.x.x.jar

 次ページでは、実際に逆コンパイルをやってみましょう。生成されたソースコードも紹介します。

 
1-2

 Index
第13回 究極の問題解析ツール、逆コンパイラJD-Eclipseとは
Page1
ソースコードがなくても大丈夫?
JD-Eclipseは、Java 5以降に対応! しかも自動!!
注意! 「商用ソフトウェアの場合は、そのライセンスを確認」
注意! 「JadClipseなどはアンイストールしておこう」
  Page2
やってみよう! 自動逆コンパイル
逆コンパイルされたソースコードは、どうなっている?
デバッガと組み合わせると、真価を発揮
トラブル解析に究極の力を発揮

ユカイ、ツーカイ、カイハツ環境! バックナンバー 連載インデックスへ»



Java Solution全記事一覧

TechTargetジャパン

Java Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH