使用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文件


总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
redis redisson 集合的使用案例(RList、Rset、RMap)
这篇文章主要介绍了redis redisson 集合的使用案例(RList、Rset、RMap),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07
SpringBoot集成XXL-JOB实现灵活控制的分片处理方案
因为需要并行处理同一张数据表里的数据,所以比较自然地想到了分片查询数据,可以利用对 id 取模的方法进行分片,避免同一条数据被重复处理,所以本文给大家介绍了SpringBoot集成XXL-JOB实现灵活控制的分片处理方案,需要的朋友可以参考下2024-09-09
Spring ApplicationContext接口功能详细介绍
ApplicationContext是Spring应用程序中的中央接口,由于继承了多个组件,使得ApplicationContext拥有了许多Spring的核心功能,如获取bean组件,注册监听事件,加载资源文件等2023-02-02
Java hashCode原理以及与equals()区别联系详解
在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致2022-11-11


最新评论