很多時候我們可能要查看第三方的程序源碼來理清別人的思路。大多數時候jar包僅僅為我們提供了編譯好的class字節文件?;蛘呖偸窍螺d源碼讓磁盤越來越不堪重載。或者有些源碼和api是付費的,雖然jar包可以免費使用。
能夠快速反編譯calss文件得到源碼,是學習java快速進階的必要手段。讓我們從實現的角度去深入的分析該如何使用第三方程序接口。
eclipse是基于插件方式的開源IDE,也有人提供了基于eclipse的反編譯插件IDE,叫“jadclipse”。
jadclipse.sf.net -Jad Java decompiler plugin for Eclipse IDE.官方介紹網址打開是空白頁面,不太清楚是因為官方不再維護此項目還是我的網絡的問題。還不錯,官方還繼續提供給下載鏈接,還可以訪問sourceforge選擇下載。
插件的安裝安裝特別簡單,你可以將下載到的net.sf.jadclipse_3.3.0.jar放到eclipse\dropins目錄下面,當eclipse啟動的時候,插件將自動安裝。
第二種安裝方式為:如果你的eclipse版本高于3.4,那么可以直接將net.sf.jadclipse_3.3.0.jar拷貝到eclipse\dropins目錄。同樣當eclipse啟動時,插件將自動安裝。
讓我們看看安裝完后的界面吧。在eclipse菜單中選擇Window -- Preferences -- Java -- JadClipse

*jadclipse是一個基于jad的eclipse插件IDE,他本身不提供class文件的反編譯。
接下來到了真正請出反編譯的主謀了 -- jad
不幸的事情總是伴隨著過于激動的情緒而來。jad的官網連域名都沒有了。具有共享精神的互聯網總是這么神奇,Tomas Varaneckas為我們提供了鏡像下載。聲明如下:
As http://www.kpdus.com is no longer accessible, JAD Java Decompiler download is extremely hard to find. Here is a mirror where you can get JAD for various platforms.
I will keep this mirror up even if kpdus.com will get back online, just in case.
so,u can download it from this mirror JAD Java Decompiler Download Mirror
jad提供的windows版本是一個可執行的exe文件,jad.exe,你可以將它放置到任何你愿意的目錄。我習慣將它放置到eclipse的根目錄。配置反編譯IDE環境:如上圖所示的jadclipse IDE界面
jadclipse參數設置1、Path to Decompiler:配置jad的絕對路徑。如:D:\eclipse\jad.exe
2、Directory for temporsy files:反編譯產生的臨時文件位置,可以選擇修改或者不修改
3、也可以選中Use Eclipse code formatter(overrides Jad formatting instructions),這樣可以將反編譯后的代碼與Ctrl+Shif+F格式化出來的代碼樣式保持一致
4、中文的支持:選中JadClipse -- Misc,將Convert Unicode strings into ANSI strings選項打鉤
5、檢查jadclipse是否被設置為默認的class文件查看器。位置在:eclipse菜單--Window--Perference--General--Editors--File Associations--.calss,確認JadClipse Class File Viewer為默認的查看器

6、jadclipse的其他參數,你可以根據英文意思理解并自行設置,它不會影響反編譯效果。
好了,你的eclipse已經可以反編譯jar包中的class文件了。快去試試吧 :)或者你可能不喜歡為eclipse安裝過多的插件,如何單獨使用jad進行反編譯呢?
jad 命令反編譯jad可以將calss文件反編譯成java源文件,反編譯的目的是為了學習java,一般的商業軟件都是做了代碼混淆的,請遵守商業軟件的版權聲明。
我們可以在CMD中設置臨時環境變量。以便jad命令可以應用到class目錄。
設置jad path 環境變量 -- cmd命令:path=d:/eclipse/;%path%

posted on 2012-08-24 11:13
末日風情 閱讀(562)
評論(0) 編輯 收藏 所屬分類:
java編程