一 . 前言

Arthas 是一个 Java 诊断程序 , Arthas 官方 已经很详细的描述了命令的使用 , 如果想整体学习可以查看.

而这一篇文档记录了从最开始接触到 Arthas 到逐步深入过程中的一些记录和感悟 , 整理成文档以便处理.

使用场景

二. 入门使用

// 官方文档 @ <https://arthas.aliyun.com/doc/quick-start.html>

// Step 1 :下载官方 JAR
wget <https://arthas.aliyun.com/arthas-boot.jar>

// Step 2 : 启动 arthas
java -jar arthas-boot.jar

// Step 3 : 选择对应的Java 进程 (PS : 启动后会显示所有的进程)

// Step 4 : 输入 dashboard , 查看当前进程信息

// 补充 : 其他主要的参数
- 通过thread命令来获取到MainClass : thread 1 | grep 'main('
- 通过 jad 反编译 : jad demo.MathGame
- 通过watch命令来查看返回值 : watch demo.MathGame primeFactors returnObj

复制代码

三. 命令整理

[](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/87bceac54fdd47fc848413fae36c15e4~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?)

[](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7d5fd940421743338cbcf9daf643607f~tplv-k3u1fbpfcp-zoom-in-crop-mark:4536:0:0:0.awebp?)

四. 问题梳理

4.1 ClassLoader 在其中的作用

在很多命令中都涉及到 classLoader , 我们可以通过 classLoader 先获取到 hash 码 ,再查询具体的参数

// 查看 classLoader
classloader -l

// 在查看对象的时候通过 classLoader 获取对象
getstatic -c 3d4eac69 ClassName methodName
mc -c 327a647b /tmp/Test.java >> 通过 ClassLoader 加载

复制代码

总结

Arthas 的初始操作不多 ,更多的应该是基于实际问题的处理,后续文章会陆续往这个方向思考。

附录:常见使用方式