433 字
2 分钟
开发工具之arthas命令
参考链接
概述
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
Arthas支持JDK 6+,支持Linux/Mac/Winodws,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
安装及运行
安装
windows版本需要从官方下载一个压缩包,解压即可

运行
可以使用默认提供的as.bat文件,不过需要手动输入JVM进程的pid,也可以采用我下面自己写的,保存为bat批处理文件,只需知道pid,运行选择数字即可
:Ajava -jar arthas-boot.jargoto Apause实际运行效果,下图“org.apache.catalina.startup.bootsrap”是我现在的tomcat,因为只运行了一个JVM,非常好选择,直接输入1进入arthas仪表盘即可。


命令行
redefine重新加载class文件到JVM中
redefine D:/tomcat/webapps/test/WEB-INF/classes/com/test/testproject/util/JSON.class- redefine只能重新加载已经存在JVM内存的中class,没有相应的class时,会报错

- 当已经加载过的类,是有编译错误的,也是无法重新加载的

开发工具之arthas命令
https://iszengmh.pages.dev/posts/开发工具之arthas命令/