04.字节码常用工具

javap -v命令

  • javap是JDK自带的反编译工具,可以通过控制台查看字节码文件的内容。适合在服务器上查看字节码文件内容。
  • 直接输入javap查看所有参数。
  • 输入javap -v 字节码文件名称查看具体的字节码信息。(如果jar包需要先使用jar -xvf命令解压)


Java字节码文件查看常用工具​_服务器



jclasslib的idea插件

jclasslib也有ldea插件版本,建议开发时使用Idea插件版本,可以在代码编译之后实时看到字节码文件内容。

安装方法:

Java字节码文件查看常用工具​_java_02


使用方法:

Java字节码文件查看常用工具​_java_03


先高亮需要查看字节码的源文件,然后点击View - Show Bytecode with Jclasslib。

插件中显示字节码文件可能不是最新的,需要重新编译代码然后在插件中点击刷新按钮以查看最新的字节码文件内容。


阿里arthas

Arthas是一款线上监控诊断产品,通过全局视角实时查看应用load、内存、gc、线程的状态信息,并能在不修公改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。

官网:https://arthas.aliyun.com/doc/

Java字节码文件查看常用工具​_服务器_04


dump命令

dump类的全限定名:dump已加载类的字节码文件到特定目录。

dump -d E:/software/arthasData/ com.mamalao.jvmtest.arthas.Demo1

Java字节码文件查看常用工具​_字节码_05



jad命令 反编译

jad类的全限定名:反编译已加载类的源码。

Java字节码文件查看常用工具​_字节码_06



使用案例

使用阿里arthas定位线上出现的字节码问题

背景:

小李的团队昨天对系统进行了升级修复了某个bug,但是升级完之后发现bug还是存在,小李怀疑是因为没有把最新的字节码文件部署到服务器上,请使用阿里的arthas去确认升级完的字节码文件是不是最新的。

解决思路:

1.在出问题的服务器上部署一个arthas,并启动。

2.连接arthas的控制台,使用jad命令加上想要查看的类名,反编译出源码。

3.确认源码是否是最新的。



Java字节码文件查看常用工具​_服务器_07



Java字节码文件查看常用工具​_字节码_08



小结

如何查看字节码文件?

本地文件可以使用jclasslib工具查看,开发环境使用jclasslib插件。

Java字节码文件查看常用工具​_字节码_09


服务器上文件使用javap命令直接查看,也可以通过arthas的dump命令导出字节码文件再查看本地文件。还可以使用jad命令反编译出源代码。


字节码文件的核心组成有哪些?


Java字节码文件查看常用工具​_java_10



Java字节码文件查看常用工具​_java_11