程序員不免要借鑑其餘java工程的代碼。可有時只能拿到.calss文件,jar包或者war包,這個時候要求程序員能熟練的將這些類型文件反編譯爲Java代碼並造成可編譯運行的項目。本文介紹的反編譯工具是JD-GUI。反編譯的jar包是一個springboot項目的jar包。java
下載JD-GUI後解壓,無需安裝,雙擊打開exe文件。
程序員
open file選擇要反編譯的jar包,
打開,左側classes->com目錄下就是java源代碼文件
spring
點擊想查看的文件,能夠看到源代碼,點擊有下劃線的變量符號,會自動跳轉到定義處,也能夠搜索變量名,可是搜索時會比較慢,須要多等一會。 springboot
這樣只能查看代碼,要編譯,修改,運行代碼,就要把全部代碼提取出,造成工程項目。點擊File->save all source
源代碼會保存爲壓縮包
壓縮包解壓是三個文件夾
java代碼都在BOOT-INF/calsses/com裏
將classes目錄裏的全部東西一塊兒拷貝到創建好的空的springboot項目中編譯運行,目錄層次要拷貝正確。 app
項目配置文件application.properties和pom.xm裏的內容複製反編譯解壓目錄同名文件裏的內容粘貼進來。 ide
如今項目代碼有了,配置文件也有,可是通常還不能成功運行項目。由於反編譯的pom不是特別準確,可能不少項目須要的包,pom裏沒有import。或者原項目用的一些jar包原本就是手工導入項目,不是pom統一管理的。
最好的辦法就是從被反編譯的jar包裏提取全部須要import的jar包。 工具
將test01.jar後綴名改爲zip test01.zip,解壓到當前文件夾。
解壓後的BOOT-INF\lib裏有本項目須要的所有jar包,將全部jar包經過add external jar的方式加到項目中。
3d
到這裏距離成功運行項目很近了,由於反編譯的代碼也不是特別精確,有些代碼須要人工分析修改,或者修改不成功只能註釋掉,才能經過編譯。運行時有些包可能報錯,主要是pom引入的包和手工導入的包衝突,或者有些包版本不對,也須要逐一解決。固然,有些反編譯項目直接正確運行不報錯誤,這樣固然最好了。blog