カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまにRuby on Railsなども。

JD-EclipseでJavaのclassファイルをデコンパイルする

Javaプロジェクトでは、既存のライブラリや独自フレームワークを使わされることがある。こういうとき、classファイルのみでソースが見れずにデバッグが不便!ソースが見たい!と思うことがよくあるが、そういうときはデコンパイルツールを使うとclassファイルからソースコードを復元してくれるのでとても便利。Javaはバイトコードに変換する都合上、バイナリファイルからでもほぼ完全なソースコードを復元することができるので、読み込んだjarファイルを使ってデバッグする際にもデコンパイルツールは必須と言える。

デコンパイルツールは昔はJadというものがあったが最近はどうも更新されていないらしい。で調べたところ、今どきのデコンパイルツールとしてJD(Java Decompiler) Projectというものがあり、こちらが主流のようだ。なので、今回はJDを使ってEclipseからデコンパイルする手順をまとめてみる。

■JD公式サイト
http://jd.benow.ca/

Eclipseで使う場合もとても簡単で、用意されたプラグインをインストールするのみ。早速使ってみる。

JD-Eclipseをインストールする

Eclipseのヘルプ > 新規ソフトウェアのインストール
f:id:osn_th:20150219144801p:plain

追加
f:id:osn_th:20150219144803p:plain
名前:JD-Eclipse Update Site
ロケーション:http://jd.benow.ca/jd-eclipse/update
f:id:osn_th:20150219144739p:plain
Java Decompiler Eclipse Plug-inを選択し、次へ
f:id:osn_th:20150219144741p:plain
次へ
f:id:osn_th:20150219144748p:plain
同意し、完了
f:id:osn_th:20150219144745p:plain
インストールが開始される。しばらくすると以下の選択ウィンドウが開く。
選択し、OK
f:id:osn_th:20150219144751p:plain
Eclipse再起動
f:id:osn_th:20150219144736p:plain
再起動後にEclipseにて適当なjarファイルを開き、適当なclassファイルを開くと以下のようにソースコードが見れるようになっている!
f:id:osn_th:20150219144940j:plain

JD-GUIを使ってみる

ちなみにJD-GUIというものも同ページからダウンロードできるが、こちらはインストール不要の実行ファイルとなっており、jarファイルを読み込ませるだけで以下のようにデコンパイルされたソースを見ることができる。Windows、mac、Linux版とそろっており、Eclipseがない環境で手軽に見たい場合はこちらが便利。
f:id:osn_th:20150219144807p:plain