JVM学习 — Java字节码常用工具

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、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,大大提升线上问题排查效率。
  • 官网:arthas.aliyun.com/doc/
  • dump 类的全限定名:dump已加载类的字节码文件到特定目录。
  • jad类的全限定名:反编译已加载类的源码。

在cmd命名行执行java -jar arthas-boot.jar,来启动这个工具

这里我启动我的springboot项目

启动后可以找到我们启动的程序

直接在命令行中敲入3,

这就进入到程序内部了

功能

dump制定类的字节码文件

jad反编译出源代码

执行jad com.ysl.JavaDemo.JavaDemoApplication

案例及解决

相关推荐
Irene199112 小时前
Flink 学习日志 01:前端转大数据的实战避坑指南
java·jvm·flink
小天源1 天前
从 Nginx 日志到访问分析:轻量化网站监测服务的架构实践
jvm·nginx·网络安全·架构·网络监控
十年Java程序媛1 天前
JVM 内存区域与对象内存布局|new 对象底层流程,对象头 MarkWord 详解
java·jvm·spring boot
用户094248568031 天前
第2章:Windows、WSL2 与 Docker 环境搭建Redis
java·jvm
梅梅绵绵冰1 天前
JVM虚拟机
java·开发语言·jvm
十年Java程序媛1 天前
JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STW
java·开发语言·jvm·spring boot·后端·面试
Lhappy嘻嘻2 天前
读懂 JVM:内存模型、类加载机制、分代回收
java·开发语言·jvm
CS创新实验室3 天前
Python 对象“死“了之后去了哪?——引用计数与分代垃圾回收
开发语言·jvm·python
wuminyu3 天前
JMM学习总结:深入理解happens-before关系
java·linux·c语言·jvm·c++
DongQiShanRen3 天前
六根硬件映射(下):物理闭环五步法,抽一条已实装的看
大数据·jvm·人工智能·算法·rust·哈希算法·集成学习