天天看點

一些Java反編譯工具/源代碼檢視工具的介紹

有的朋友抱怨他們在使用他們公司的閉源架構時看不到底層的源代碼。那麼可以嘗試使用一些Java反編譯工具。

下面我舉個例子介紹具體使用這些反編譯工具的步驟。

JAD

假設我們想在Eclipse裡檢視第42行Graphics2D的源代碼:

一些Java反編譯工具/源代碼檢視工具的介紹

直接ctrl加左鍵進去是看不見源碼的。

一些Java反編譯工具/源代碼檢視工具的介紹

我們可以使用一個開源的工具JAD通過反編譯來檢視其源代碼。JAD的wiki介紹: https://en.wikipedia.org/wiki/JAD_(software)

Eclipse有一個對應的插件,可以從如下這個連結下載下傳:

http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download

1. 根據你使用的Eclipse版本到上述連結裡下載下傳對應的插件。

一些Java反編譯工具/源代碼檢視工具的介紹

2. 根據作業系統的類型下載下傳反編譯器的執行檔案。在我的windows系統上我下載下傳的是JAD.exe。

一些Java反編譯工具/源代碼檢視工具的介紹
一些Java反編譯工具/源代碼檢視工具的介紹

3. 把JAD插件放到Eclipse的plugins檔案夾。

一些Java反編譯工具/源代碼檢視工具的介紹

4. 把JAD.exe放到JRE目錄的bin檔案夾下面。

一些Java反編譯工具/源代碼檢視工具的介紹

5. 重新開機Eclipse, 在菜單路徑Windows->Preference->Java裡,能看到一個新的選項JadClipse。在這裡我們把第四步放好的JAD.exe的絕對路徑維護給字段”Path to decompiler”。

一些Java反編譯工具/源代碼檢視工具的介紹

6. 現在選中一個class按F3,即可看到JAD反編譯之後的Java源代碼。

一些Java反編譯工具/源代碼檢視工具的介紹

JD-GUI

使用很友善,window下就是一個可執行檔案。

一些Java反編譯工具/源代碼檢視工具的介紹

輕按兩下jd.exe, 然後把你想反編譯的.class檔案拖進JD的視窗即可:

一些Java反編譯工具/源代碼檢視工具的介紹

JD會自動反編譯并且把源代碼顯示出來:

一些Java反編譯工具/源代碼檢視工具的介紹

通過Maven自動下載下傳依賴包的源代碼

如果你的Java項目是通過Maven管理其依賴的,那麼想檢視依賴包的源代碼是一件非常容易的事情:

一些Java反編譯工具/源代碼檢視工具的介紹

通過這個Download Sources的右鍵菜單,可以自動下載下傳依賴包的源代碼檔案。

例如我的Java項目的pom.xml裡定義了cglib這個庫的依賴:

一些Java反編譯工具/源代碼檢視工具的介紹

那麼觸發源代碼檔案的下載下傳之後:

一些Java反編譯工具/源代碼檢視工具的介紹

到我的本地倉庫根據包的路徑名或者檔案夾修改時間能夠很容易找到剛剛下載下傳的源代碼檔案。

一些Java反編譯工具/源代碼檢視工具的介紹