反编译插件介绍
安装IDEA后, 一般自带反编译插件, Java Bytecode Decompiler
如果没有可以自己安装下
1.首先找到插件的jar包, 在IDEA安装目录的plugins文件夹下
比如我的目录是:
2.运行java命令, 指定插件的jar包目录和你要反编译的jar包目录还有生成反编译后jar包的目录
命令如下:
java -cp “E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar” \
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true \
D:\maven\respository\xxx\xxx-0.0.1-SNAPSHOT.jar D:\src
E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar 是我的插件目录
D:\maven\respository\xxx\xxx-1.5.0-SNAPSHOT.jar 是我要反编译的jar包
D:\src 是我要生成反编译后jar包的目录
当jre版本低于class文件的版本时会报错
错误信息:
class文件版本跟jdk版本对应关系如下
我们可以指定自己安装的高版本JDK来运行, 比如这里我用自己安装的JDK11来运行
E:\JDK\jdk11.0.10\bin\java -cp \
“E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar” \
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true \
E:\Java_develop\Maven\repository\com\xxx\xxx\0.0.1-SNAPSHOT\xxx.jar D:\src\
3.可以直接解压jar包
jar包实际就是一个压缩包文件, 比如我们常见的zip/rar
可以直接用压缩工具解压, 也可以把xxx.jar的后缀改成xxx.zip后解压
解压后直接导入IDEA修改, 修改完了再编译打包即可
4.打jar包命令
打jar包命令, 将当前目录文件所有文件或者匹配*.class文件打到jar包中
jar cvf xxx.jar ./
指定manifest文件进行打包
jar cvfm xxx.jar MANIFEST.MF *.class