標籤:blog http java 使用 io strong 檔案 for
轉自:http://blog.csdn.net/superbeck/article/details/5189231
對於長年使用Java的程式員,大部分應該都會或多或少的使用到反編譯軟體。畢竟,不可能你所使用到的每一個包都會提供完善的javadoc,而且,有時候代碼比javadoc更容易理解。這裡將講述筆者所瞭解的一些反編譯軟體以及它們各自的IDE外掛程式版。
簡介
現在業內的反編譯軟體據說有幾十種。其中有jad,以及基於jad而開發的其他反編譯軟體(Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和國產的小穎JAVA原始碼反編譯專家);還有jode,以及以jode為核心開發的JCavaj Java Decompiler、BTJ (Back To Java)、jEdit’s JavaInsight plugin);還有DAVA等,以及當前筆者最推崇的Java Decompiler。
在這些反編譯軟體中,筆者使用過jad,jode,Java Decompiler以及基於這些軟體開發的其他軟體如Cavaj,小穎等,還有這些軟體的eclipse外掛程式版。
其中,jad是一個使用VC++開發的著名反編譯引擎,效能非常快;jode是一個使用java開發的開源的反編譯引擎,而Java Decompiler似乎也是java開發的反編譯軟體,並且這三款軟體都有相應的eclipse外掛程式版。
使用效果對比
筆者在eclipse中使用了以上三款軟體。
使用環境為:eclipse Galileo,jad 1.5.8g + jadclipse 3.3.0,jodeEclipse 1.0.6,JD-Eclipse 0.1.3。
試用結果如下:
反編譯效能: jad == jode > Java Decompiler
反編譯品質:Java Decompiler > jode >= jad
從速度方面來看,你會明顯的感覺到Java Decompiler比較的慢,總是以慢一拍的速度展示反編譯後的代碼;而jode和jad都表現的非常高速,接近於開啟原始碼的速度。
從反編譯的品質來看,無疑是Java Decompiler最好。最根本的原因就是,jad和jode的最新版都是在JDK 5.0出來以前發布的,所以對JDK 5.0及以上版本的特性基本上不支援。之所以認為jode的反編譯效果比jad好,是因為jad的eclipse外掛程式不怎麼好用,自己添加的jar包有時候不能反編譯出來。
外掛程式的使用
外掛程式的使用方面,需要稍微的注意一下。
jode和JD-Eclipse都是直接安裝好就可以使用;而jad則需要另外指定jad.exe的路徑,可以把jad.exe檔案放到“%JAVA_HOME%/bin”目錄下,然後在eclipse中按照以下順序找到jad的設定視窗,Window -> Preferences, 開啟Preferences視窗,然後依次選擇 Java -> JadClipse,確保"Path to decompiler:"的值為"jad.exe"。
其中,jad和jode還有一些別的IDE的外掛程式版,有需要的話,可以到sourceforge上去搜尋。
總結
如果使用的是JDK 5.0及以上,請使用Java Decompiler,畢竟效果才是最重要的。如果使用的是JDK 1.4的話,還是建議使用jode,如果不在eclipse中使用的話,可以選擇jad,加以複雜的命令,可以實現很多的功能。
本文主要是稍微介紹一下三款反編譯軟體的對比結果,所以具體的使用方法等可以見參考資料中的文章。
參考資料
Jad官網:http://www.kpdus.com/jad .html (好久沒有更新了,下載請使用下面網址)
jad下載:http://www.varaneckas.com/jad
jadclipse:http://sourceforge.net/projects/jadclipse/
jode:http://sourceforge.net/projects/jode/
jodeeclipse:http://sourceforge.net/projects/jodeeclipse/
Java Decompiler: http://java.decompiler.free.fr/
java 反編譯外掛程式的介紹總結:http://zhidao.baidu.com/question/79760697.html
http://hi.baidu.com/darmn/blog/item/56678e7f14f81a0129388af7.html
http://hi.baidu.com/zhangge9477/blog/item/adeced08c9663a3ae8248849.html