使用IDEA的反编译插件 反编译jar包

反编译插件介绍

安装IDEA后, 一般自带反编译插件, Java Bytecode Decompiler
如果没有可以自己安装下

1.首先找到插件的jar包, 在IDEA安装目录的plugins文件夹下

D:\IntelliJ IDEA 2021.2.2\plugins\java-decompiler\lib

2.运行java命令, 指定插件的jar包目录和你要反编译的jar包目录还有生成反编译后jar包的目录

命令如下:

java -cp "D:\IntelliJ IDEA 2021.2.2\plugins\java-decompiler\lib\java-decompiler.jar" ^
org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true ^
E:\project\operation-module-capabilityStatistics-1.18.0.jar "E:\game"

当jre版本低于class文件的版本时会报错:

错误信息:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread “main” 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 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)

class文件版本跟jdk版本对应关系如下

49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9
54 = Java 10
55 = Java 11
56 = Java 12
57 = Java 13
58 = Java 14
59 = Java 15
60 = Java 16

我们可以指定自己安装的高版本JDK来运行, 比如这里我用自己安装的JDK11来运行 

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

相关推荐

  1. idea工具编译jar

    2024-03-28 06:08:07       38 阅读
  2. 编译jar

    2024-03-28 06:08:07       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-28 06:08:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-28 06:08:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-28 06:08:07       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-28 06:08:07       20 阅读

热门阅读

  1. React 18中hook函数详解之useRef

    2024-03-28 06:08:07       22 阅读
  2. React或Vue与后端通讯的跨域问题处理

    2024-03-28 06:08:07       17 阅读
  3. 【React】React 内置 Hook

    2024-03-28 06:08:07       19 阅读
  4. SpringBoot + Redis + Lua = 王炸!

    2024-03-28 06:08:07       20 阅读
  5. Encoding类

    2024-03-28 06:08:07       19 阅读
  6. axios

    axios

    2024-03-28 06:08:07      21 阅读
  7. SpringMVC基础Controller

    2024-03-28 06:08:07       17 阅读
  8. 软件测试基础(2)

    2024-03-28 06:08:07       16 阅读
  9. 【剑指offer】75. 和为S的两个数字

    2024-03-28 06:08:07       21 阅读
  10. 课时77:流程控制_until循环_until基础

    2024-03-28 06:08:07       20 阅读
  11. flutter boost 如何从native跳转到flutter页面

    2024-03-28 06:08:07       20 阅读
  12. Selenium 学习(0.22)——软件测试之小结

    2024-03-28 06:08:07       16 阅读
  13. 深入浅出(四)VTK库—3D可视化

    2024-03-28 06:08:07       18 阅读
  14. 边缘随机变量

    2024-03-28 06:08:07       19 阅读