1.javap
- javap是JDK自带的反编译工具,可以通过控制台查看字节码文件的内容。适合在服务器上查看字节码文件内容。
- 直接输入javap查看所有参数。
- 输入**javap -v 字节码文件名称【字节码文件是要求全路径的】**查看具体的字节码信息。(如果jar包需要先使用jar –xvf命令解压)
2.jclasslib插件
jclasslib也有Idea插件版本,建议开发时使用Idea插件版本,可以在代码编译之后实时看到字节码文件内容。
在idea中搜索jclasslib
安装好后就可以在View - Show Bytecode With Jclasslib找到该插件
选中要读取的java源代码文件,然后点击该插件【重复第二步】就可以解读这个文件的字节码了,例如我这里选的是JavaDemoApplication.java这个源代码文件
注意:
若是代码改动了,字节码文件是不会变化的,需要重新编辑才行
3.阿里arthas
- Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。
- 官网:https://arthas.aliyun.com/doc/
- dump 类的全限定名:dump已加载类的字节码文件到特定目录。
- jad类的全限定名:反编译已加载类的源码。
在cmd命名行执行java -jar arthas-boot.jar,来启动这个工具
这里我启动我的springboot项目
启动后可以找到我们启动的程序
直接在命令行中敲入3,
这就进入到程序内部了
功能
dump制定类的字节码文件
jad反编译出源代码
执行jad com.ysl.JavaDemo.JavaDemoApplication