溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JD-GUI怎么反編譯jar包為Java源代碼

發(fā)布時間:2022-01-17 15:41:00 來源:億速云 閱讀:842 作者:柒染 欄目:大數(shù)據(jù)

JD-GUI怎么反編譯jar包為Java源代碼,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

程序員難免要借鑒其他java工程的代碼。可有時只能拿到.calss文件,jar包或者war包,這個時候要求程序員能熟練的將這些類型文件反編譯為Java代碼并形成可編譯運行的項目。本文介紹的反編譯工具是JD-GUI。反編譯的jar包是一個springboot項目的jar包。

下載地址https://pan.baidu.com/s/1zomK-U1eBN2_Z4wqscUvwA

提取碼g8v8

下載后解壓,無需安裝,雙擊打開exe文件。

JD-GUI怎么反編譯jar包為Java源代碼

open file選擇要反編譯的jar包,

JD-GUI怎么反編譯jar包為Java源代碼

打開,左側(cè)classes->com目錄下就是java源代碼文件

JD-GUI怎么反編譯jar包為Java源代碼

點擊想查看的文件,可以看到源代碼,點擊有下劃線的變量符號,會自動跳轉(zhuǎn)到定義處,也可以搜索變量名,但是搜索時會比較慢,需要多等一會。

這樣只能查看代碼,要編譯修改運行代碼,就要把所有代碼提取出,形成工程項目。點擊File->save all source

JD-GUI怎么反編譯jar包為Java源代碼

源代碼會保存為壓縮包

JD-GUI怎么反編譯jar包為Java源代碼

壓縮包解壓是三個文件夾

JD-GUI怎么反編譯jar包為Java源代碼

java代碼都在BOOT-INF/calsses/com里

JD-GUI怎么反編譯jar包為Java源代碼

將classes目錄里的所有東西一起拷貝到建立好的空的springboot項目中編譯運行,目錄層次要拷貝正確。application.properties和pom.xm里的內(nèi)容復(fù)制反編譯解壓目錄同名文件里的,粘貼到springboot項目對應(yīng)文件里。

現(xiàn)在項目代碼有了,配置文件也有,但是一般還不能成功運行項目。因為反編譯的pom不是特別準(zhǔn)確,可能很多項目需要的包,pom里沒有import?;蛘咴椖坑玫囊恍﹋ar包本來就是手工導(dǎo)入項目,不是pom統(tǒng)一管理的。

最好的辦法就是從被反編譯的jar包里提取所有需要import的jar包。

將test01.jar后綴名改成zip test01.zip,解壓到當(dāng)前文件夾。

JD-GUI怎么反編譯jar包為Java源代碼

解壓后的BOOT-INF\lib里有本項目需要的全部jar包,將所有jar包通過add external jar的方式加到項目中。

JD-GUI怎么反編譯jar包為Java源代碼

到這里距離成功運行項目很近了,因為反編譯的代碼也不是特別精確,有些代碼需要人工分析修改,或者修改不成功只能注釋掉,才能通過編譯。運行時有些包可能報錯,主要是pom引入的包和手工導(dǎo)入的包沖突,或者有些包版本不對,也需要逐一解決。當(dāng)然,有些反編譯項目直接正確運行不報錯誤,這樣當(dāng)然最好了。

關(guān)于JD-GUI怎么反編譯jar包為Java源代碼問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI