使用IDEA插件反编译jar包的实现方式

 更新时间:2025年05月07日 15:53:57   作者:leader_song(小宋编码)  
这篇文章主要介绍了使用IDEA插件反编译jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用IDEA插件反编译jar包

1. 使用说明

项目上线后,如果遇到问题阻塞,我们第一步要做的就是去查看日志,但是代码不是一个人写的,说不定就会遇到没有日志的,遇到这种情况,只能去看日志的报错行数是哪里,否则,无从下手。

查看日志报错行数时,发现现有代码又和线上的代码不一致,怎么办?

这个时候我们就需要反编译,反编译有很多工具可以使用,比如<font style="color:rgb(51, 51, 51);">JD-GUI</font>。本文接下来就介绍一下如何通过我们神奇的<font style="color:rgb(51, 51, 51);">Idea</font>软件进行反编译jar包。

2. 操作步骤

2.1 下载插件

首先,我们要保证IDEA中有反编译插件。通过【File】——>【Settings】——>【Plugins】输入<font style="color:rgb(51, 51, 51);">Decompiler</font>进行查看,看是否有<font style="color:rgb(51, 51, 51);">Java Decompiler</font>这个插件。

没有安装就下载安装,然后重启IDEA即可。

2.2 查找插件安装路径

1. 右键点击IDEA,选择属性,复制IDEA安装路径

2. 打开文件资源管理器,复制路径(路径不要复制太长看到bin目录即可)

3. 找到IDEA安装路径后,我们就可以找到插件的安装路径在 plugins 文件夹下面,找到 java-decompiler

4. 进入 lib 文件夹,看到插件即可

2.3 反编译

1. 在 lib 文件夹下创建一个目录,如<font style="color:rgb(51, 51, 51);">test</font>文件夹

2. 在 lib 文件夹下放入要反编译的 jar 包

3. 黄色代码是替换的内容

java -cp + “插件路径” + org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true + jar包 + 反编译后存储位置

java -cp "D:\IDEA\IntelliJ IDEA 2020.1.4\plugins\java-decompiler\lib\java-decompiler.jar" org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true test.jar test

4. 然后才此目录下执行命令(两种方式都可以,自行选择)

  • 4.1 通过 cmd 的方式反编译,输入 cmd 回车,输入上面的命令回车

  • 4.2 通过 Git Bash Here 的方式反编译,在当前目录下右键Git Bash Here,输入上面的命令回车

注意 :如果不先创建目录,就执行的话,可能会报错。

3. 查看反编译文件

  • 3.1 执行完之后会在新建的文件夹里面看见反编译之后的文件

  • 3.2 因为以上命令执行后,反编译出来的也是jar包

  • 3.3 用解压软件解压就可以了

  • 3.4 反编译后的目录结构跟jar包是一样的,只不过是把class文件反编译成java文件

总结

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

相关文章

  • Spring Boot2.x如何自定义Endpoint

    Spring Boot2.x如何自定义Endpoint

    这篇文章主要介绍了Spring Boot2.x如何自定义Endpoint,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 手把手教你搞懂冒泡排序和选择排序

    手把手教你搞懂冒泡排序和选择排序

    这篇文章主要介绍了java数组算法例题代码详解(冒泡排序,选择排序),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Java设计模式之Prototype原型模式

    Java设计模式之Prototype原型模式

    这篇文章主要为大家详细介绍了Java设计模式之Prototype原型模式的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • springboot接收日期类型参数的操作方法

    springboot接收日期类型参数的操作方法

    如果使用Get请求,直接使用对象接收,则可以使用@DateTimeFormat注解进行格式化,本文重点给大家介绍springboot接收日期类型参数的方法,感兴趣的朋友一起看看吧
    2024-02-02
  • 详解SpringBoot 快速整合MyBatis(去XML化)

    详解SpringBoot 快速整合MyBatis(去XML化)

    本篇文章主要介绍了详解SpringBoot 快速整合MyBatis(去XML化),非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • Java中十六进制和十进制之间互相转换代码示例

    Java中十六进制和十进制之间互相转换代码示例

    这篇文章主要给大家介绍了关于Java中十六进制和十进制之间互相转换的相关资料,我们项目过程中总是要用到十进制与十六进制相互转换的方法,需要的朋友可以参考下
    2023-07-07
  • 解决mybatis-plus通用mapper调用报错:Invalid bound statement

    解决mybatis-plus通用mapper调用报错:Invalid bound statement

    这篇文章主要介绍了解决mybatis-plus通用mapper调用报错:Invalid bound statement的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • springboot+Oauth2实现自定义AuthenticationManager和认证path

    springboot+Oauth2实现自定义AuthenticationManager和认证path

    本篇文章主要介绍了springboot+Oauth2实现自定义AuthenticationManager和认证path,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Java实现学生信息管理系统(借助Array List)

    Java实现学生信息管理系统(借助Array List)

    这篇文章主要为大家详细介绍了Java实现学生信息管理系统,借助Array List,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 如何通过一张图搞懂springBoot自动注入原理

    如何通过一张图搞懂springBoot自动注入原理

    这篇文章主要给大家介绍了关于如何通过一张图搞懂springBoot自动注入原理的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02

最新评论