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 等独立工具。

总结

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

相关文章

  • 给你的MyBatis-Plus装上批量插入的翅膀(推荐)

    给你的MyBatis-Plus装上批量插入的翅膀(推荐)

    这篇文章主要介绍了给你的MyBatis-Plus装上批量插入的翅膀,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 关于IDEA关联数据库的问题

    关于IDEA关联数据库的问题

    这篇文章主要介绍了IDEA关联数据库的相关知识,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • JUC之CountdownLatch使用详解

    JUC之CountdownLatch使用详解

    这篇文章主要介绍了JUC之CountdownLatch使用详解,CountdownLatch 用来进行线程同步协作,等待所有线程完成倒计时,
    其中构造参数用来初始化等待计数值,await() 用来等待计数归零,countDown() 用来让计数减一,需要的朋友可以参考下
    2023-12-12
  • java ZXing生成二维码及条码实例分享

    java ZXing生成二维码及条码实例分享

    本文分享了java ZXing生成二维码及条码的实例代码,具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12
  • 如何利用Spring把元素解析成BeanDefinition对象

    如何利用Spring把元素解析成BeanDefinition对象

    这篇文章主要介绍了如何利用Spring把元素解析成BeanDefinition对象,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Java System类从基础到实战的进阶指南

    Java System类从基础到实战的进阶指南

    Java System类是Java与操作系统交互的核心,提供流操作、数组复制、时间处理等基础功能,JDK8优化性能并引入高精度时间API,实战中需注意避免滥用gc()和currentTimeMillis(),本文将从版本演进到实战应用,全面剖析System类的奥秘,感兴趣的朋友一起看看吧
    2025-07-07
  • 浅析Java模板方法的一种使用方式

    浅析Java模板方法的一种使用方式

    模板方法说白了就是将一段代码模板化,将通用的代码段抽取出来,并提供一些自定义的接口去定制的特定位置的某些业务功能。本文主要来和大家聊聊它的一种使用方式,希望对大家有所帮助
    2023-02-02
  • Java中的ArrayList和线性表用法及说明

    Java中的ArrayList和线性表用法及说明

    文章介绍了线性表及其常见实现方式,包括顺序表和链表,重点讨论了顺序表的实现细节,如接口实现、增删查改操作、内存管理等,同时,文章还简要介绍了ArrayList的概念及其在Java集合框架中的应用,包括ArrayList的构造、常见方法和遍历方式
    2025-12-12
  • 实例解析Java中的构造器初始化

    实例解析Java中的构造器初始化

    这篇文章主要通过实例解析Java中的构造器初始化,代码很简单,叙述很明确,需要的朋友可以了解下。
    2017-09-09
  • Java中Mybatis,SpringMVC,Spring的介绍及联系

    Java中Mybatis,SpringMVC,Spring的介绍及联系

    这篇文章主要为大家详细介绍了Java中Mybatis,SpringMVC,Spring的介绍及联系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10

最新评论