0.引言
某些沒(méi)有提供源碼的歷史遺留項(xiàng)目,或者第三方j(luò)ar包,我們常常需要進(jìn)行二開(kāi),但是又沒(méi)有源碼,這時(shí)就需要進(jìn)行反編譯獲取到項(xiàng)目源碼。
當(dāng)然也不是所有的jar都能反編譯的,某些做了防編譯處理的則不能,但對(duì)于我們歷史遺留的項(xiàng)目進(jìn)行反編譯則是完全可行的
今天我們就來(lái)看看如何進(jìn)行反編譯
1. 通過(guò)JD-GUI反編譯
JD-GUI是一款開(kāi)源的反編譯軟件,通過(guò)它我們可以比較方便的進(jìn)行jar包的反編譯。
1、其下載地址如下所示
JD-GUI下載地址
2、下載完成后,解壓壓縮包即可
3、我這里以mac系統(tǒng)為例,雙擊打開(kāi)解壓文件夾中JD-GUI
程序
新版m1芯片mac可能會(huì)出現(xiàn)如下報(bào)錯(cuò)
提示內(nèi)容描述的是需要jdk1.8以上,實(shí)際上并不是這個(gè)原因,我這里使用的是jdk11,要解決這個(gè)問(wèn)題還需要修改一個(gè)文件
2、右鍵點(diǎn)擊JD-GUI
,點(diǎn)擊顯示包內(nèi)容
3、進(jìn)入Contents/MacOS
文件夾,打開(kāi)universalJavaApplicationStub.sh
文件,使用新版的文件替換,新版文件內(nèi)容可以在如下地址復(fù)制
https://raw.githubusercontent.com/tofi86/universalJavaApplicationStub/master/src/universalJavaApplicationStub
因?yàn)槭峭饩W(wǎng)地址,某些同學(xué)訪問(wèn)可能有問(wèn)題,所以我單獨(dú)將修改過(guò)后的軟件包放在如下所示的網(wǎng)盤(pán)地址中,有需要可直接下載
JD-GUI mac修改版網(wǎng)盤(pán)下載地址
提取碼: vkcs
4、雙擊打開(kāi)軟件,將需要反編譯的jar包拖到軟件界面中
5、選中全部文件,點(diǎn)擊File-Save All Sources
保存反編譯完的源碼,選擇保存路徑
6、等待反編譯完成即可
7、反編譯完成后,在BOOT-INF/classes
文件夾下可以看到生成的源碼
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-798070.html
如此我們就拿到了想要的源碼了,簡(jiǎn)單快捷!當(dāng)然生成的源碼在文件夾結(jié)構(gòu)上會(huì)有些偏差,只需要手動(dòng)調(diào)整一下即可,核心源碼是可以完整捕捉的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-798070.html
到了這里,關(guān)于Java進(jìn)階:如何反編譯jar包獲取源碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!