Eclipse 開發時常遇到「點進類文件卻只能看 .class 字節碼」的窘境(MyEclipse/IDEA 則內建源碼關聯)。反編譯工具 JD-GUI 能將編譯後的 .class / .jar 還原為可讀 Java 源碼,適用於:
逆向工程 將目標程序(可執行文件/字節碼)通過逆向分析,推導出設計思路、演算法、結構、甚至源碼。JD-GUI 專注於 Java 字節碼 → Java 源碼的還原。
Eclipse 中點開類 → 編輯器標題欄顯示所在 JAR 路徑(如 xxx.jar)。複製該 JAR 到工作目錄。
jd-gui.exe(Windows)或 java -jar jd-gui.jarD:\decompiled\mylib)src/main/java/...| 場景 | 處理方式 |
|---|---|
| 內部類/匿名類名稱混亂 | JD-GUI 會生成 Outer$1.class 等名稱,屬正常現象 |
| Lambda/方法引用反編譯異常 | Java 8+ 語法糖反編譯可能顯示 invokedynamic 佔位符,建議配合 CFR/Fernflower |
| 混淆代碼(ProGuard) | 類/方法/變量名被縮寫為 a/b/c,邏輯可讀但語義需人工還原 |
| 需命令行批量反編譯 | 使用 jadx 或 fernflower CLI 模式 |
反編譯僅限學習研究、相容性開發、安全審計等合法場景。嚴禁用於破解授權、竊取商業機密、重新分發修改版等侵權行為。請遵守軟件許可協議與當地法律法規。