有的朋友抱怨他們在使用他們公司的閉源架構時看不到底層的源代碼。那麼可以嘗試使用一些Java反編譯工具。
下面我舉個例子介紹具體使用這些反編譯工具的步驟。
JAD
假設我們想在Eclipse裡檢視第42行Graphics2D的源代碼:
直接ctrl加左鍵進去是看不見源碼的。
我們可以使用一個開源的工具JAD通過反編譯來檢視其源代碼。JAD的wiki介紹:
https://en.wikipedia.org/wiki/JAD_(software)Eclipse有一個對應的插件,可以從如下這個連結下載下傳:
http://jadclipse.sourceforge.net/wiki/index.php/Main_Page#Download1. 根據你使用的Eclipse版本到上述連結裡下載下傳對應的插件。
2. 根據作業系統的類型下載下傳反編譯器的執行檔案。在我的windows系統上我下載下傳的是JAD.exe。把JAD插件放到Eclipse的plugins檔案夾。
4. 把JAD.exe放到JRE目錄的bin檔案夾下面。
5. 重新開機Eclipse, 在菜單路徑Windows->Preference->Java裡,能看到一個新的選項JadClipse。在這裡我們把第四步放好的JAD.exe的絕對路徑維護給字段”Path to decompiler”。
6. 現在選中一個class按F3,即可看到JAD反編譯之後的Java源代碼。
JD-GUI
使用很友善,window下就是一個可執行檔案。
輕按兩下jd.exe, 然後把你想反編譯的.class檔案拖進JD的視窗即可:
JD會自動反編譯并且把源代碼顯示出來:通過Maven自動下載下傳依賴包的源代碼
如果你的Java項目是通過Maven管理其依賴的,那麼想檢視依賴包的源代碼是一件非常容易的事情:
通過這個Download Sources的右鍵菜單,可以自動下載下傳依賴包的源代碼檔案。
例如我的Java項目的pom.xml裡定義了cglib這個庫的依賴:
那麼觸發源代碼檔案的下載下傳之後:
到我的本地倉庫根據包的路徑名或者檔案夾修改時間能夠很容易找到剛剛下載下傳的源代碼檔案。