デコンパイルツール「Java Decompiler」を試してみた。
Jadが大好きなんだけど、Java5以降の文法に対応してないから
若干やきもきしつつもガッカリしている皆さん、こんばんは。
名前そのまま、Java Decompilerというツールがありました。
http://java.decompiler.free.fr/
Java6まで対応しており、
Eclipseプラグインとしても、単体のGUIアプリとしても使えるスグレモノです。
Java5のアノテーションやGenrics、foreach文なんかの復元にも対応しており
Jadが「デコンパイル失敗しました(><)」とすぐに根を上げていたクラスも
開けるようになるんじゃないかと思います。
ということで、早速試してみました。
GUI版
http://java.decompiler.free.fr/?q=jdgui#downloads
ここからダウンロードして、解凍して実行するだけです。簡単です。
GUI版では、.jarファイルや.classファイルを読み込むと、
ソースコードブラウザが開きます。
デコンパイルに待たされることはありません。
また、このソースコードブラウザがなかなか使いやすく、
テキスト検索機能や、JARファイル内の別クラスへのリンク機能があり、
普通にソースを追う分には不便を感じないレベルでした。
ただ、自宅で実行してみたら、いきなりNorton2010が怒り出して
プログラムがコンピュータ上で疑わしい動作をしていました。
遮断して削除するという選択をしました。
って言って、exeを削除しちゃいました(><)
疑わしい動作って、何をしようとしたのか、ちっとも分かりません。
もうちょっとログ出してくれても良いんじゃないか>Norton
何かご存知の方がいらっしゃれば、情報をください m(_ _)m
追記
どうもNortonの誤検出のようですね。
http://d.hatena.ne.jp/cero-t/20100216/1266336649
Eclipseプラグイン版
Eclipseのアップデートサイトを使って、インストールするだけです。
http://java.decompiler.free.fr/jd-eclipse/update
サイトにはVisual C++ 2008のライブラリが必要だと記載されているんですが、
私の環境には既に入っていたんでしょうか、特にインストールすることなく、
Eclipseプラグインを使えるようになりました。
Eclipseプラグイン版では、Jadなどと同様、
クラスをダブルクリックするだけでソースコードが開くようになります。
ただ残念なことに、Jadにはあった
「デコンパイルしたソースコードの行番号」と「元のクラスの行番号」を
合わせる機能が見当たりません。