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


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

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

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

4. 進入 lib 文件夾,看到插件即可

2.3 反編譯
1. 在 lib 文件夾下創(chuàng)建一個目錄,如<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包 + 反編譯后存儲位置
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 的方式反編譯,在當前目錄下右鍵Git Bash Here,輸入上面的命令回車

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

- 3.2 因為以上命令執(zhí)行后,反編譯出來的也是jar包

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

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


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

