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. 加载某个类
相关推荐
优雅的38度33 分钟前
SpringBoot 3.0+ 整合 Swagger 3.0
java·后端
Pitayafruit35 分钟前
🔥 Spring Boot 3 整合 zxing:轻松生成二维码的指南
java·spring boot·后端
雷渊37 分钟前
redis如何实现发布/订阅功能?
java·后端·面试
雷渊38 分钟前
redis中的zset怎么实现的?
java·后端·面试
Anarkh_Lee40 分钟前
图解JVM - 21.JVM运行时参数
java·jvm·后端
Anarkh_Lee42 分钟前
图解JVM - 22.分析GC日志
java·jvm·后端
kong79069281 小时前
SpringBoot整合SSM
java·spring boot·ssm
骑牛小道士1 小时前
java基础使用- 泛型
java·开发语言
LeonNo111 小时前
Spring常见问题复习
java·spring·rpc
KNeeg_1 小时前
SpringSecurity框架入门
java·spring·spring cloud·springsecurity