Eclipse Class Decompiler——Java反編譯外掛

NO IMAGE

http://bbs.csdn.net/topics/390263414

閒暇之餘,寫了一個Eclipse下的Java反編譯外掛:Eclipse Class Decompiler,整合了目前最好的2個Java反編譯工具Jad和JD-Core,並且和Eclipse Class Viewer無縫整合,能夠很方便的使用本外掛檢視類庫原始碼,以及採用本外掛進行Debug除錯。

Eclipse Class Decompiler外掛更新站點: http://feeling.sourceforge.net/update

直接使用Eclipse進行更新,支援Eclipse 3.x, 4.x,不依賴任何其他外掛,直接勾選更新外掛即可。

下圖為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除錯:可以在首選項選中對齊行號進行單步跟蹤除錯,和普通的包含原始碼時的除錯操作完全一致,同樣的也可以設定斷點進行跟蹤。