Javaのclassファイルをでコンパイルして確認したい時に利用できる方法です。
Javaのeclipseでデバッグをしている時、なんだか振る舞いが想定と違う場合があります。
自分で書いたソースだと、不具合が発生している部分が特定しやすいですが、jarライブラリを利用していると、どこで不具合を生じているのか、検証しにくい場合があり、ソースを閲覧してみたい場合があります。
通常、classファイルをeclipseでダブルクリックしても、ソースを見ることはできません。
そんな時には、Javaのデコンパイル可能なモジュールをセットアップすることで、ソースを見ることができるようになります。
どのJavaのデコンパイラを使うか
一昔前までは、「Jad」というプロジェクトが有名だったのですが、開発がストップしており、javaのバージョン1.5以上だと、対応していません。
また、一時期有名だった、「Eclipse Class Decompiler」にはマルウェア混入の話もあり、安心して使えないといった事情もあります。
今は、「Java Decompiler」を利用するのが良いようですね。
「Java Decompiler」の公式HPはこちらです。
単体のGUIアプリとしても使えますが、Eclipseのプラグインとしても利用可能ですので、そのセットアップ手順をご紹介します。
EclipseでのJava Decompilerセットアップ手順
eclipse上で、「Help ⇒ Install New Software」をクリックする。
すると、以下のような「Install」ダイアログが開く。
ここで「Add」ボタンを押すと、下記のような「Add Repository」ダイアログが開くので、
Name: JD-Eclipse Update Site(分かりやすい名前で構わない)
Location: http://jd.benow.ca/jd-eclipse/update/
を入力してOKを押す。すると、ここで指定したURLに対してプラグインを探しに行く。
下記のように、「Java Decompiler Eclipse Plug-in」と「JD-Eclipse Plug-in」にチェックを入れて、「Next」ボタンを押す。
ライセンスに合意を促す画面が表示されるので、合意して、「Finish」ボタンで終了する。
以下は、以前の情報なので、上記URLを使えば、エラー無くインストールできると思います。
これでOK!と思ったのですが、下記のようなエラーが出て、失敗してしまいました。
An error occurred while collecting items to be installed
session context was:(profile=SDKProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
Artifact not found: osgi.bundle,jd.ide.eclipse,0.1.3.
http://java.decompiler.free.fr/jd-eclipse/update/plugins/jd.ide.eclipse_0.1.3.jar
Artifact not found: osgi.bundle,jd.ide.eclipse.win32.x86,0.1.3.
http://java.decompiler.free.fr/jd-eclipse/update/plugins/jd.ide.eclipse.win32.x86_0.1.3.jar
確認してみると、このURLにはもう、plug-in用のjarファイルが置かれていないようですね。。
残念。
ということで、本家の「JD-Eclipse」のページにもある、ダウンロードページからzipを落としてきます。
落としたzipを解凍するとできる、「features」と「plugins」フォルダを、Eclipseの同じ名前のディレクトリに上書きし、Eclipseを再起動します。
Window ⇒ Preferences ⇒ Java ⇒ Decompiler
が下のようになっていたら、認識されているので、とりあえずインストールは成功です。
classファイルをダブルクリックすると、デコンパイルされたソースが見れるでしょう。
それでも、何かエラーが出て動かない場合は、こちらの記事を参考ください。