idea如何反编译jar包

 更新时间:2025年02月13日 09:39:35   作者:探索途中的码农  
文章介绍了如何使用IntelliJ IDEA反编译JAR包,并详细步骤包括安装JavaBytecodeDecompiler插件、使用命令行反编译、解决Java版本不兼容问题以及推荐其他反编译工具

idea反编译jar包

最近遇到一个需求需要使用idea反编译jar包,idea实际是集成了反编译jar包的功能,现在是需要将一个大的jar包反编译并导出。

1. 可以先查看idea是否有安装

Java Bytecode Decompiler插件

没有安装可以到idea插件市场搜索进行安装,路径file->settings,在搜索框中输入plugins,不区分大小写,然后点击plugins,在右侧输入java bytecode decompiler进行安装即可。

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\"

注意双引号不可以少,第一个目录是idea安装路径找到plugins目录下的java-decompiler\lib\java-decompiler.jar包,第二个目录是需要反编译的jar包,第三个是反编译jar包之后输出的目录。

3. 一下是反编译过程遇到的问题

错误: 加载主类 org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler 时出现 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

根据提示知道,需要反编译的jar包class file version 61.0,当前java运行环境versions up to 60.0,低版本不可以反编译高版本jar包,使用命令 java -version 查看当前jdk版本

从而推断 versions up to 60.0 对应jdk16,那么class file version 61.0应该对应jdk17。

下载安装jdk17,查看当前版本

再次执行反编译命令成功。

ps :

也可以使用其他反编译工具比如使用 Jad、JD-GUI 或 Procyon 等独立工具。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于Java中如何实现文件的读写操作

    关于Java中如何实现文件的读写操作

    在Java中,可以使用File和FileInputStream、FileOutputStream、BufferedReader、PrintWriter等类来进行文件读写操作,需要的朋友可以参考下
    2023-05-05
  • Java HttpServletResponse响应实现过程详解

    Java HttpServletResponse响应实现过程详解

    这篇文章主要介绍了Java HttpServletResponse响应实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • mybatis plus中如何编写sql语句

    mybatis plus中如何编写sql语句

    这篇文章主要介绍了mybatis plus中如何编写sql语句,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 我从jdk1.8升级到jdk11所遇到的坑都有这些

    我从jdk1.8升级到jdk11所遇到的坑都有这些

    这篇文章主要介绍了从jdk1.8升级到jdk11将会遇到的一些坑,本文给大家分享解决方案对大家的学习或工作具有参考借鉴价值,对jdk1.8升级到jdk11相关知识感兴趣的朋友,快来看看吧
    2021-08-08
  • Java实现文件压缩为zip和解压zip压缩包

    Java实现文件压缩为zip和解压zip压缩包

    这篇文章主要为大家介绍了Java如何实现将文件压缩为zip以及解压zip压缩包,文中的示例代码讲解详细,感兴趣的小伙伴可以动手尝试一下
    2022-06-06
  • IDEA怎么生成UML类图的实现

    IDEA怎么生成UML类图的实现

    这篇文章主要介绍了IDEA怎么生成UML类图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • IDEA插件Statistic统计代码快速分辨烂项目

    IDEA插件Statistic统计代码快速分辨烂项目

    这篇文章主要为大家介绍了使用IDEA插件Statistic来统计项目代码,帮助大家快速识别出烂项目,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-01-01
  • Java 创建两个线程模拟对话并交替输出实现解析

    Java 创建两个线程模拟对话并交替输出实现解析

    这篇文章主要介绍了Java 创建两个线程模拟对话并交替输出实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • IDEA Error:java: 无效的源发行版: 17错误

    IDEA Error:java: 无效的源发行版: 17错误

    本文主要介绍了IDEA Error:java: 无效的源发行版: 17错误,这个错误是因为您的IDEA编译器不支持Java 17版本,您需要更新您的IDEA编译器或者将您的Java版本降级到IDEA支持的版本,本文就来详细的介绍一下
    2023-08-08
  • Java中ArrayList与顺序表的概念与使用实例

    Java中ArrayList与顺序表的概念与使用实例

    顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表,下面这篇文章主要介绍了Java ArrayList与顺序表的相关资料,需要的朋友可以参考下
    2022-01-01

最新评论