【JVM入门到实战】(三) 查看字节码文件的工具

一、 javap -v命令

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

二、 jclasslib插件

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

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

三、阿里arthas

  • Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修
    改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。
  • 官网:https://arthas.aliyun.com/doc/
  • dump 类的全限定名:dump已加载类的字节码文件到特定目录。
  • jad 类的全限定名: 反编译已加载类的源码。

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

背景

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

思路

  1. 在出问题的服务器上部署一个 arthas,并启动。
  2. 连接 arthas的控制台,使用 jad命令加上想要查看的类名,反编译出源码。
  3. 确认源码是否是最新的
相关推荐
2401_832365526 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
2301_779622416 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_766283446 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
zh15702312 小时前
如何编写动态SQL存储过程_使用sp_executesql执行灵活查询
jvm·数据库·python
2401_8242226912 小时前
SQL报表统计数据量巨大_分批统计策略
jvm·数据库·python
X566112 小时前
mysql如何处理连接数过多报错_调整max_connections参数
jvm·数据库·python
m0_6091604912 小时前
MongoDB中什么是Hashed Shard Key的哈希冲突_哈希函数的分布均匀性分析
jvm·数据库·python
2401_8330336214 小时前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
m0_6245785914 小时前
JavaScript 中高精度小数(20位以上)的正确处理方法
jvm·数据库·python
m0_7403524215 小时前
如何用 Symbol 作为对象属性键名防止第三方库属性覆盖
jvm·数据库·python