使用IDEA插件反編譯jar包的實(shí)現(xiàn)方式
使用IDEA插件反編譯jar包
1. 使用說明
項(xiàng)目上線后,如果遇到問題阻塞,我們第一步要做的就是去查看日志,但是代碼不是一個(gè)人寫的,說不定就會(huì)遇到?jīng)]有日志的,遇到這種情況,只能去看日志的報(bào)錯(cuò)行數(shù)是哪里,否則,無從下手。
查看日志報(bào)錯(cuò)行數(shù)時(shí),發(fā)現(xiàn)現(xiàn)有代碼又和線上的代碼不一致,怎么辦?
這個(gè)時(shí)候我們就需要反編譯,反編譯有很多工具可以使用,比如<font style="color:rgb(51, 51, 51);">JD-GUI</font>。本文接下來就介紹一下如何通過我們神奇的<font style="color:rgb(51, 51, 51);">Idea</font>軟件進(jìn)行反編譯jar包。
2. 操作步驟
2.1 下載插件
首先,我們要保證IDEA中有反編譯插件。通過【File】——>【Settings】——>【Plugins】輸入<font style="color:rgb(51, 51, 51);">Decompiler</font>進(jìn)行查看,看是否有<font style="color:rgb(51, 51, 51);">Java Decompiler</font>這個(gè)插件。
沒有安裝就下載安裝,然后重啟IDEA即可。


2.2 查找插件安裝路徑
1. 右鍵點(diǎn)擊IDEA,選擇屬性,復(fù)制IDEA安裝路徑

2. 打開文件資源管理器,復(fù)制路徑(路徑不要復(fù)制太長看到bin目錄即可)

3. 找到IDEA安裝路徑后,我們就可以找到插件的安裝路徑在 plugins 文件夾下面,找到 java-decompiler

4. 進(jìn)入 lib 文件夾,看到插件即可

2.3 反編譯
1. 在 lib 文件夾下創(chuàng)建一個(gè)目錄,如<font style="color:rgb(51, 51, 51);">test</font>文件夾

2. 在 lib 文件夾下放入要反編譯的 jar 包

3. 黃色代碼是替換的內(nèi)容
java -cp + “插件路徑” + org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true + jar包 + 反編譯后存儲(chǔ)位置
java -cp "D:\IDEA\IntelliJ IDEA 2020.1.4\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true test.jar test
4. 然后才此目錄下執(zhí)行命令(兩種方式都可以,自行選擇)
- 4.1 通過 cmd 的方式反編譯,輸入 cmd 回車,輸入上面的命令回車


- 4.2 通過 Git Bash Here 的方式反編譯,在當(dāng)前目錄下右鍵Git Bash Here,輸入上面的命令回車

注意 :如果不先創(chuàng)建目錄,就執(zhí)行的話,可能會(huì)報(bào)錯(cuò)。
3. 查看反編譯文件
- 3.1 執(zhí)行完之后會(huì)在新建的文件夾里面看見反編譯之后的文件

- 3.2 因?yàn)橐陨厦顖?zhí)行后,反編譯出來的也是jar包

- 3.3 用解壓軟件解壓就可以了

- 3.4 反編譯后的目錄結(jié)構(gòu)跟jar包是一樣的,只不過是把class文件反編譯成java文件


總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java設(shè)計(jì)模式之Prototype原型模式
這篇文章主要為大家詳細(xì)介紹了Java設(shè)計(jì)模式之Prototype原型模式的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03
詳解SpringBoot 快速整合MyBatis(去XML化)
本篇文章主要介紹了詳解SpringBoot 快速整合MyBatis(去XML化),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10
Java中十六進(jìn)制和十進(jìn)制之間互相轉(zhuǎn)換代碼示例
這篇文章主要給大家介紹了關(guān)于Java中十六進(jìn)制和十進(jìn)制之間互相轉(zhuǎn)換的相關(guān)資料,我們項(xiàng)目過程中總是要用到十進(jìn)制與十六進(jìn)制相互轉(zhuǎn)換的方法,需要的朋友可以參考下2023-07-07
解決mybatis-plus通用mapper調(diào)用報(bào)錯(cuò):Invalid bound statement
這篇文章主要介紹了解決mybatis-plus通用mapper調(diào)用報(bào)錯(cuò):Invalid bound statement的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
springboot+Oauth2實(shí)現(xiàn)自定義AuthenticationManager和認(rèn)證path
本篇文章主要介紹了springboot+Oauth2實(shí)現(xiàn)自定義AuthenticationManager和認(rèn)證path,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(借助Array?List)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),借助Array?List,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
如何通過一張圖搞懂springBoot自動(dòng)注入原理
這篇文章主要給大家介紹了關(guān)于如何通過一張圖搞懂springBoot自動(dòng)注入原理的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02

