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

*jadclipse是一個基于jad的eclipse插件IDE,他本身不提供class文件的反編譯。
接下來到了真正請出反編譯的主謀了 -- jad
不幸的事情總是伴隨著過于激動的情緒而來。jad的官網(wǎng)連域名都沒有了。具有共享精神的互聯(lián)網(wǎng)總是這么神奇,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版本是一個可執(zhí)行的exe文件,jad.exe,你可以將它放置到任何你愿意的目錄。我習(xí)慣將它放置到eclipse的根目錄。配置反編譯IDE環(huán)境:如上圖所示的jadclipse IDE界面
jadclipse參數(shù)設(shè)置1、Path to Decompiler:配置jad的絕對路徑。如:D:\eclipse\jad.exe
2、Directory for temporsy files:反編譯產(chǎn)生的臨時文件位置,可以選擇修改或者不修改
3、也可以選中Use Eclipse code formatter(overrides Jad formatting instructions),這樣可以將反編譯后的代碼與Ctrl+Shif+F格式化出來的代碼樣式保持一致
4、中文的支持:選中JadClipse -- Misc,將Convert Unicode strings into ANSI strings選項(xiàng)打鉤
5、檢查jadclipse是否被設(shè)置為默認(rèn)的class文件查看器。位置在:eclipse菜單--Window--Perference--General--Editors--File Associations--.calss,確認(rèn)JadClipse Class File Viewer為默認(rèn)的查看器

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

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