Java反編譯工具Luyten
Luyten是一款很強大的反編譯工具包,是一款github的開源工具,軟體功能非常強大,介面簡潔明晰、操作方便快捷,設計得很人性化。
工具軟體下載路徑:https://github.com/deathmarine/Luyten/releases/tag/v0.5.3
我比較喜歡直接使用.jar版本,直接在頁面開啟目標.class或者.jar包檔案,即可直觀的檢視反編譯後的原始碼,很強大
下載下來後雙擊就可以使用了,同樣的jar,我們開啟試試效果:
不再是ERROR了,同樣在使用過程中可以總結一下它和jd-gui的區別:
1.檢視jar包的時候,jd-gui是摺疊的,而Luyten是展開的
2.以前在用jd-gui反編譯的時候,泛型是會被擦除的
List<Integer> list =newArrayList();
編譯後會變成
List list =newArrayList();
因為泛型在編譯期會被擦除,這個沒毛病,但是Luyten反編譯後的為什麼沒有被擦除呢?是因為jdk在編譯過程中雖然擦除了泛型,但是還是通過註釋對其進行了標記,如:
#4 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
這就解釋的通為什麼Luyten還是能夠找回來沒擦除之前的型別,畢竟能迴歸最原始的檔案對程式設計師越有利嘛~