查看字节码文件
上一节中我们认识了 字节码文件 知道里面有什么东西,那么随之而来的问题就是,我们平时写代码 工作中怎么查看一个java类 对应的字节码文件。
idea jclasslib 插件
第一个是 jclasslib 插件 专门看字节码内容用的 在idea里面直接插件搜索 然后安装 很方便
然后点一个文件 view 里面有show codebyte with jclasslib
安装完后 注意编译过文件的才能看
arthas
arthas是阿里开源的一款线上诊断工具,这个东西非常强大 这里引出来不单单是为了查看字节码文件,后面jvm的很多地方都会用到 arthas。
去官网下载jar包, 因为它是java编写的 如果你是本地用就放本地,如果你是线上用就让运维把它放到线上的服务器
然后目录下启动,就可以看到当前运行的java进程, 这时候你选一个你要看的 进去
arthas有很多命令 大家可以直接去官方文档去查 这里先介绍2个 后面再陆续介绍:
dump 命令 可以把字节码文件导出到某个地方 你去查看
jad命令 可以直接把线上打包的class文件 反编译成源码
(这个工作中排查问题非常有用,有时候运维把你的代码发到线上 有时候版本会发错 或者其他原因 导致线上代码运行和你本地的不一致 这时候线上是打包好的java字节码文件 你不可能用idea去看线上代码什么样 这时候怎么办 就用arthas 反编译 去看)