arthas之dump/classloader命令的使用

文章目录

  • [1. dump](#1. dump)
  • [2. classloader](#2. classloader)

1. dump

  • 作用:将已加载类的字节码文件保存到特定目录:logs/arthas/classdump/

  • 参数

数名称 参数说明
class-pattern 类名表达式匹配
[c:] 类所属 ClassLoader 的 hashcode
[E] 开启正则表达式匹配,默认为通配符匹配
  • 举例
bash 复制代码
把String类的字节码文件保存到~/logs/arthas/classdump/目录下
dump java.lang.String
bash 复制代码
把demo包下所有的类的字节码文件保存到~/logs/arthas/classdump/目录下
dump demo.*
  • 效果



小结

  • dump作用:将正在JVM中运行的程序的字节码文件提取出来,保存在logs相应的目录下

  • 不同的类加载器放在不同的目录下

2. classloader

  • 获取类加载器的信息

作用

  1. classloader 命令将 JVM 中所有的classloader的信息统计出来,并可以展示继承树,urls等。

  2. 可以让指定的classloader去getResources,打印出所有查找到的resources的url。对于ResourceNotFoundException异常比较有用。

  • 参数说明
参数名称 参数说明
[l] 按类加载实例进行统计
[t] 打印所有ClassLoader的继承树
[a] 列出所有ClassLoader加载的类,请谨慎使用
[c:] ClassLoader的hashcode
[c: r:] 用ClassLoader去查找resource
[c: load:] 用ClassLoader去加载指定的类
  • 举例
bash 复制代码
默认按类加载器的类型查看统计信息
classloader
bash 复制代码
按类加载器的实例查看统计信息,可以看到类加载的hashCode
classloader -l
bash 复制代码
查看ClassLoader的继承树
classloader -t
bash 复制代码
通过类加载器的hash,查看此类加载器实际所在的位置
classloader -c 70dea4e
bash 复制代码
使用ClassLoader去查找指定资源resource所在的位置
classloader -c 70dea4e -r META-INF/MANIFEST.MF
bash 复制代码
使用ClassLoader去查找类的class文件所在的位置
classloader -c 70dea4e -r java/lang/String.class
bash 复制代码
使用ClassLoader去加载类
classloader -c 70dea4e --load java.lang.String
  • 小结

classloader命令主要作用有哪些?

  1. 显示所有类加载器的信息
  2. 获取某个类加载器所在的jar包
  3. 获取某个资源在哪个jar包中
  4. 加载某个类
相关推荐
陈文锦丫3 小时前
MQ的学习
java·开发语言
乌暮3 小时前
JavaEE初阶---线程安全问题
java·java-ee
爱笑的眼睛113 小时前
GraphQL:从数据查询到应用架构的范式演进
java·人工智能·python·ai
Seven974 小时前
剑指offer-52、正则表达式匹配
java
代码or搬砖4 小时前
RBAC(权限认证)小例子
java·数据库·spring boot
青蛙大侠公主4 小时前
Thread及其相关类
java·开发语言
Coder_Boy_4 小时前
DDD从0到企业级:迭代式学习 (共17章)之 四
java·人工智能·驱动开发·学习
2301_768350234 小时前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql
派大鑫wink4 小时前
【Java 学习日记】开篇:以日记为舟,渡 Java 进阶之海
java·笔记·程序人生·学习方法