1. 程式人生 > >Eclipse Class Decompiler——Java反編譯插件(轉)

Eclipse Class Decompiler——Java反編譯插件(轉)

ont git 選項 jd-core 格式化工具 透視圖 下載 數據 編譯器

Eclipse Class Decompiler是一款Eclipse插件,整合了多種反編譯器,和Eclipse Class Viewer無縫集成,能夠很方便的使用插件查看類庫源碼,進行Debug調試。
同時還提供了在線自動查找源代碼,查看Class二進制字節碼的功能。


Eclipse Class Decompiler對JDK的最低要求為JDK1.6, 能反編譯和debug各版本的Class文件,支持JDK8的Lambda語法,同時支持中文等非Ascii碼字符集的解析,支持Eclipse 3.6及以上所有版本的Eclipse。

本插件支持Windows,Linux,Macosx 32位及64位操作系統。



Github項目地址為:https://github.com/cnfree/Eclipse-Class-Decompiler

請通過以下地址選擇一個可用的源在線安裝:

http://cnfree.github.io/Eclipse-Class-Decompiler/update
http://raw.githubusercontent.com/cnfree/eclipse/master/decompiler/update/
http://www.cpupk.com/decompiler/update/

離線包下載地址:

https://github.com/cnfree/Eclipse-Class-Decompiler/releases/download/v2.10.0/eclipse-class-decompiler-update_v2.10.0.zip


插件使用說明:

下圖為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文件即可,如果沒有設置為缺省查看器,可以使用右鍵菜單進行查看。

技術分享


同時插件也支持直接將外部的Class文件拖拽到Eclipse編輯器中進行反編譯。


Eclipse Class Decompiler插件也提供了反編譯整個Jar文件或者Java包的反編譯。該操作支持Package Explorer對包顯示布局的操作,如果是平鋪模式布局,則導出的源代碼不包含子包,如果是層級模式布局,則導出選中的包及其所有的子包。

技術分享


Debug調試:可以在首選項選中對齊行號進行單步跟蹤調試,和普通的包含源代碼時的調試操作完全一致,同樣的也可以設置斷點進行跟蹤。當透視圖為Debug時,插件自動生成行號並進行對齊方便調試代碼,無需進行任何設置。

技術分享

Eclipse Class Decompiler——Java反編譯插件(轉)