idea如何反編譯jar包
idea反編譯jar包
最近遇到一個(gè)需求需要使用idea反編譯jar包,idea實(shí)際是集成了反編譯jar包的功能,現(xiàn)在是需要將一個(gè)大的jar包反編譯并導(dǎo)出。
1. 可以先查看idea是否有安裝
Java Bytecode Decompiler插件
沒有安裝可以到idea插件市場(chǎng)搜索進(jìn)行安裝,路徑file->settings,在搜索框中輸入plugins,不區(qū)分大小寫,然后點(diǎn)擊plugins,在右側(cè)輸入java bytecode decompiler進(jìn)行安裝即可。
2. 接下來可以使用命令反編譯jar包
java -cp "D:\Program Files\idea\ideaIU2024\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true "D:\project\jar\target\test.jar" -o "D:\project\jar\target\temp\"
注意雙引號(hào)不可以少,第一個(gè)目錄是idea安裝路徑找到plugins目錄下的java-decompiler\lib\java-decompiler.jar包,第二個(gè)目錄是需要反編譯的jar包,第三個(gè)是反編譯jar包之后輸出的目錄。
3. 一下是反編譯過程遇到的問題
錯(cuò)誤: 加載主類 org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler 時(shí)出現(xiàn) LinkageError
java.lang.UnsupportedClassVersionError: org/jetbrains/java/decompiler/main/decompiler/ConsoleDecompiler has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0
根據(jù)提示知道,需要反編譯的jar包c(diǎn)lass file version 61.0,當(dāng)前java運(yùn)行環(huán)境versions up to 60.0,低版本不可以反編譯高版本jar包,使用命令 java -version 查看當(dāng)前jdk版本
從而推斷 versions up to 60.0 對(duì)應(yīng)jdk16,那么class file version 61.0應(yīng)該對(duì)應(yīng)jdk17。
下載安裝jdk17,查看當(dāng)前版本
再次執(zhí)行反編譯命令成功。
ps :
也可以使用其他反編譯工具比如使用 Jad、JD-GUI 或 Procyon 等獨(dú)立工具。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Java中如何實(shí)現(xiàn)文件的讀寫操作
在Java中,可以使用File和FileInputStream、FileOutputStream、BufferedReader、PrintWriter等類來進(jìn)行文件讀寫操作,需要的朋友可以參考下2023-05-05Java HttpServletResponse響應(yīng)實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Java HttpServletResponse響應(yīng)實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05我從jdk1.8升級(jí)到j(luò)dk11所遇到的坑都有這些
這篇文章主要介紹了從jdk1.8升級(jí)到j(luò)dk11將會(huì)遇到的一些坑,本文給大家分享解決方案對(duì)大家的學(xué)習(xí)或工作具有參考借鑒價(jià)值,對(duì)jdk1.8升級(jí)到j(luò)dk11相關(guān)知識(shí)感興趣的朋友,快來看看吧2021-08-08Java實(shí)現(xiàn)文件壓縮為zip和解壓zip壓縮包
這篇文章主要為大家介紹了Java如何實(shí)現(xiàn)將文件壓縮為zip以及解壓zip壓縮包,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手嘗試一下2022-06-06IDEA插件Statistic統(tǒng)計(jì)代碼快速分辨爛項(xiàng)目
這篇文章主要為大家介紹了使用IDEA插件Statistic來統(tǒng)計(jì)項(xiàng)目代碼,幫助大家快速識(shí)別出爛項(xiàng)目,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-01-01Java 創(chuàng)建兩個(gè)線程模擬對(duì)話并交替輸出實(shí)現(xiàn)解析
這篇文章主要介紹了Java 創(chuàng)建兩個(gè)線程模擬對(duì)話并交替輸出實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10IDEA Error:java: 無效的源發(fā)行版: 17錯(cuò)誤
本文主要介紹了IDEA Error:java: 無效的源發(fā)行版: 17錯(cuò)誤,這個(gè)錯(cuò)誤是因?yàn)槟腎DEA編譯器不支持Java 17版本,您需要更新您的IDEA編譯器或者將您的Java版本降級(jí)到IDEA支持的版本,本文就來詳細(xì)的介紹一下2023-08-08Java中ArrayList與順序表的概念與使用實(shí)例
順序表是指用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)各個(gè)元素,使得在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲(chǔ)在相鄰的物理存儲(chǔ)單元中的線性表,下面這篇文章主要介紹了Java?ArrayList與順序表的相關(guān)資料,需要的朋友可以參考下2022-01-01