TECH NOTES / 开发工具
Arthas 使用笔记
原笔记 2022-02-10 · 整理于 2026-10-05
Arthas 的资料与常用诊断命令,记录运行中 Java 应用的排查思路。
开源地址:https://github.com/alibaba/arthas\ 官方文档:https://alibaba.github.io/arthas\ 参考博客:https://blog.csdn.net/monokai/article/details/107457772\ Arthas 脑图—常用命令汇总: https://github.com/alibaba/arthas/issues/1003
Arthas 热更新实验
原笔记使用 Arthas 3.3.6。下面整理原来的命令顺序,用于理解反编译、编译与重新加载之间的关系;请先在测试环境验证。运行中的类被替换,不等于源码和部署包已更新,后续仍需正常发布。
在已经连接目标 JVM 的 Arthas 控制台中导出源码:
jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java在系统终端编辑导出的文件,再回到 Arthas 查询真实的 ClassLoader 标识:
sc -d *UserController用查询到的值替换 CLASSLOADER_HASH 后编译:
mc -c CLASSLOADER_HASH /tmp/UserController.java -d /tmp确认生成类和加载器对应,再按所用版本文档决定使用 retransform 或 redefine。类结构修改存在限制,不能把它当作任意代码都能生效的通用热部署。
推荐使用 retransform 命令
https://arthas.aliyun.com/doc/redefine.html
相关文章:
- 使用Arthas实现热更新代码
- Arthas | 热更新线上代码
- https://bright-boy.gitee.io/technical-notes/#/jvm/arthas
- https://arthas.aliyun.com/doc/arthas-tutorials.html?language=cn&id=case-jad-mc-redefine
教学视频