登录
注册
写文章
发现
工具
Arthas查看jvm已加载的类有错乱?
_3t3lfz KEKfID
编辑文章
Arthas查看jvm已加载的类有错乱?
asfx站长
2023.09.27 14:19:37
阅读
546
最近在学习Arthas的时候遇到一个问题,在服务B内使用Arthas命令`sc com.公司.*`进行模糊匹配查询jvm已加载的类的时候发现列举出了其他容器内服务A的java类,这是什么原因?查了pom文件的引用关系也没有依赖那些类啊,咋回事? 带着疑问翻看了[<span style="color:red">官方文档</span>](https://arthas.aliyun.com/doc/stop.html "官方文档"): ``` stop 关闭 Arthas 服务端,所有 Arthas 客户端全部退出。 提示 关闭 Arthas 服务器之前,会重置掉所有做过的增强类。但是用 redefine 重加载的类内容不会被重置。 ``` 应该是之前增强过之后有缓存,之前在服务A用过sc命令,试了下`stop`退出Arthas,再次进入服务B内使用sc命令,发现这次列举的java类是正确的。 #####下次发现列举的类有错乱就使用命令`stop`退出再重进即可。 所以这里<span style="color:red">建议</span>退出Arthas的时候使用命令`stop` 另外,Arthas默认开启了<span style="color:red">子类匹配</span>功能,会把所有当前类的子类都搜索出来,可以使用命令:`options disable-sub-class true`关闭这个功能,这样列举出来的都是自己关心的业务类了。
我的主页
退出