JD-GUI怎么反編譯jar包為Java源代碼,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、瓦房店網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為瓦房店等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
程序員難免要借鑒其他java工程的代碼。可有時(shí)只能拿到.calss文件,jar包或者war包,這個(gè)時(shí)候要求程序員能熟練的將這些類型文件反編譯為Java代碼并形成可編譯運(yùn)行的項(xiàng)目。本文介紹的反編譯工具是JD-GUI。反編譯的jar包是一個(gè)springboot項(xiàng)目的jar包。
下載地址https://pan.baidu.com/s/1zomK-U1eBN2_Z4wqscUvwA
提取碼g8v8
下載后解壓,無(wú)需安裝,雙擊打開exe文件。
open file選擇要反編譯的jar包,
打開,左側(cè)classes->com目錄下就是java源代碼文件
點(diǎn)擊想查看的文件,可以看到源代碼,點(diǎn)擊有下劃線的變量符號(hào),會(huì)自動(dòng)跳轉(zhuǎn)到定義處,也可以搜索變量名,但是搜索時(shí)會(huì)比較慢,需要多等一會(huì)。
這樣只能查看代碼,要編譯修改運(yùn)行代碼,就要把所有代碼提取出,形成工程項(xiàng)目。點(diǎn)擊File->save all source
源代碼會(huì)保存為壓縮包
壓縮包解壓是三個(gè)文件夾
java代碼都在BOOT-INF/calsses/com里
將classes目錄里的所有東西一起拷貝到建立好的空的springboot項(xiàng)目中編譯運(yùn)行,目錄層次要拷貝正確。application.properties和pom.xm里的內(nèi)容復(fù)制反編譯解壓目錄同名文件里的,粘貼到springboot項(xiàng)目對(duì)應(yīng)文件里。
現(xiàn)在項(xiàng)目代碼有了,配置文件也有,但是一般還不能成功運(yùn)行項(xiàng)目。因?yàn)榉淳幾g的pom不是特別準(zhǔn)確,可能很多項(xiàng)目需要的包,pom里沒有import。或者原項(xiàng)目用的一些jar包本來(lái)就是手工導(dǎo)入項(xiàng)目,不是pom統(tǒng)一管理的。
最好的辦法就是從被反編譯的jar包里提取所有需要import的jar包。
將test01.jar后綴名改成zip test01.zip,解壓到當(dāng)前文件夾。
解壓后的BOOT-INF\lib里有本項(xiàng)目需要的全部jar包,將所有jar包通過(guò)add external jar的方式加到項(xiàng)目中。
到這里距離成功運(yùn)行項(xiàng)目很近了,因?yàn)榉淳幾g的代碼也不是特別精確,有些代碼需要人工分析修改,或者修改不成功只能注釋掉,才能通過(guò)編譯。運(yùn)行時(shí)有些包可能報(bào)錯(cuò),主要是pom引入的包和手工導(dǎo)入的包沖突,或者有些包版本不對(duì),也需要逐一解決。當(dāng)然,有些反編譯項(xiàng)目直接正確運(yùn)行不報(bào)錯(cuò)誤,這樣當(dāng)然最好了。
關(guān)于JD-GUI怎么反編譯jar包為Java源代碼問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。