Eclipse Class Decompiler---Java反編譯外掛程式,eclipse反編譯class
若轉載,請標明出處http://www.cnblogs.com/last_hunter/p/5626779.html,謝謝!
------------------------------------------------------------------------------------
1. Java反編譯外掛程式Jad和JD-Core
來源:http://blog.csdn.net/silentmuh/article/details/46787625
來源:http://blog.csdn.net/liuquan0071/article/details/51004724
Eclipse Class Decompiler,整合了目前最好的2個Java反編譯工具Jad和JD-Core,並且和Eclipse Class Viewer無縫整合,能夠很方便的使用本外掛程式查看類庫源碼,以及採用本外掛程式進行Debug調試。
Eclipse Class Decompiler外掛程式更新網站: http://feeling.sourceforge.net/update
離線安裝包一:http://feeling.sourceforge.net/downloads/org.sf.feeling.decompiler_1.0.3.zip
離線安裝包二:http://www.blogjava.net/Files/cnfree/org.sf.feeling.decompiler_1.0.3.zip
本外掛程式僅支援Windows,Linux,Macosx作業系統。
直接使用Eclipse進行更新,支援Eclipse 3.x, 4.x,不依賴任何其他外掛程式,直接勾選更新外掛程式即可。
不少朋友問有沒有英文版的,實際上建立一個Eclipse的捷徑,加上 -nl en_US 參數,所有的外掛程式都會自動顯示成英文,包括Eclipse Class Decompiler外掛程式。
線上安裝地址 http://feeling.sourceforge.net/update
為Eclipse Class Decompiler的喜好設定頁面,可以選擇預設的反編譯器工具,並進行反編譯器的基本設定。預設的反編譯工具為JD-Core,JD-Core更為先進一些,支援泛型、Enum、註解等JDK1.5以後才有的新文法。
喜好設定配置選項:
1.重用緩衝代碼:只會反編譯一次,以後每次開啟該類檔案,都顯示的是緩衝的反編譯代碼。
2.忽略已存在的原始碼:若未選中,則查看Class檔案是否已綁定了Java原始碼,如果已綁定,則顯示Java原始碼,如果未綁定,則反編譯Class檔案。若選中此項,則忽略已綁定的Java原始碼,顯示反編譯結果。
3.顯示反編譯器報告:顯示反編譯器反編譯後產生的資料報告及異常資訊。
4.使用Eclipse代碼格式化工具:使用Eclipse格式化工具對反編譯結果重新格式化排版,反編譯整個Jar包時,此操作會消耗一些時間。
5.使用Eclipse成員排序:使用Eclipse成員排序對反編譯結果重新格式化排版,反編譯整個Jar包時,此操作會消耗大量時間。
6.以注釋方式輸出原始行號資訊:如果Class檔案包含原始行號資訊,則會將行號資訊以注釋的方式列印到反編譯結果中。
7.根據行號對齊原始碼以便於調試:若選中該項,外掛程式會採用AST工具分析反編譯結果,並根據行號資訊調整代碼順序,以便於Debug過程中的單步跟蹤調試。
8.設定類反編譯查看器作為預設的類檔案編輯器:預設為選中,將忽略Eclipse內建的Class Viewer,每次Eclipse啟動後,預設使用本外掛程式提供的類查看器開啟Class檔案。
外掛程式提供了系統功能表,工具列,當開啟了外掛程式提供的類反編譯查看器後,會啟用菜單和工具列選項,可以方便的進行喜好設定配置,切換反編譯工具重新反編譯,以及匯出反編譯結果。
類反編譯查看器右鍵菜單包含了Eclipse內建類查看器右鍵菜單的全部選項,並增加了一個“匯出反編譯原始碼”功能表項目。
開啟項目路徑下的Class檔案,如果設定類反編譯查看器為預設的查看器,直接雙擊Class檔案即可,如果沒有設定為預設查看器,可以使用右鍵菜單進行查看。
Eclipse Class Decompiler外掛程式也提供了反編譯整個Jar檔案或者Java包的反編譯。該操作支援Package Explorer對包顯示布局的操作,如果是平鋪模式布局,則匯出的原始碼不包含子包,如果是層級模式布局,則匯出選中的包及其所有的子包。
Debug調試:可以在喜好設定選中對齊行號進行單步跟蹤調試,和普通的包含原始碼時的調試操作完全一致,同樣的也可以設定斷點進行跟蹤。
2. 反編譯外掛程式jadclipse
來源:http://www.cnblogs.com/java-class/p/4279261.html
來源:http://jingyan.baidu.com/article/3f16e003c857082590c1036f.html
6. 設定*.class without source檔案類型開啟檔案,點擊Associate editors欄下Add增加按鈕,添加JadClipse Class File Viewer並設定成預設,
ok,可以開啟class檔案查看了。
--------------------------------------
Eclipse 中 plugin和 feature作用和關聯 -------------------------------
[什麼是plug-in 的基本結構?]
每一個plug-in都用一個目錄包起來, 而且起目錄名也是有講究的,比如plug-in的名字叫edu.sjtu.bbs.eclipse,版本是1.0.0, 那這個目錄名就是edu.sjtu.bbs.eclipse_1.0.0.
而且隨便開啟一個plugin目錄,可以發現總有一個檔案叫一個叫plugin.xml,這個檔案對於plugin來說十分重要, 它相當於定義了plugin的運行參數,沒有這個,plugin無法啟動,
就像你家的電冰箱如果不知道是用110V還是220V的,你也不敢亂往插座上插,所以總要有個說明,這個說明就是plugin.xml.
[什麼是 feature ?]
feature是功能組件,它裡面沒有實際的啟動並執行庫,它只是eclipse用來管理plugins的一種途徑. 比如你家裝了電燈,總要有開關控制,比如大堂的燈有一個開關控制, 臥室的燈
也有一個開關控制, 它們分別用來控制燈的亮與滅。同樣,功能組件就是用來控制外掛程式的啟動與否. eclipse的update透視圖可以設定各個功
能組件的啟用或禁用狀態, 所以你可以通過禁用功能組件,來禁止外掛程式的啟動. 這樣有一個好處,比如你裝了很多外掛程式在eclipse上,但是裝的越多,載入就越多,啟動也會變慢。
所以,我們可以把功能組件看作是外掛程式或外掛程式集合的開關, 用來控制外掛程式的狀態. 如果plugins目錄有外掛程式沒有被任何一個功能組件包絡的話, 我稱之為"野外掛程式", 就是eclipse
啟動,它也一定會啟動, 就相當於沒有開關, 電源一直連通一樣。
3. Java Decompiler
串連:http://jd.benow.ca/ Decompiler的介紹及源碼。