sc


查看JVM已加载的类信息


“Search-Class” 的简写,这个命令能搜索出所有已经加载到 JVM 中的 Class 信息,这个命令支持的参数有 [d]、[E]、[f] 和 [x:]。

参数说明

参数名称

参数说明

class-pattern

类名表达式匹配

method-pattern

方法名表达式匹配

[d]

输出当前类的详细信息,包括这个类所加载的原始文件来源、类的声明、加载的ClassLoader等详细信息。

如果一个类被多个ClassLoader所加载,则会出现多次

[E]

开启正则表达式匹配,默认为通配符匹配

[f]

输出当前类的成员变量信息(需要配合参数-d一起使用)

[x:]

指定输出静态变量时属性的遍历深度,默认为 0,即直接使用 ​​toString​​ 输出


class-pattern支持全限定名,如com.taobao.test.AAA,也支持com/taobao/test/AAA这样的格式,这样,我们从异常堆栈里面把类名拷贝过来的时候,不需要在手动把/替换为.啦。



sc 默认开启了子类匹配功能,也就是说所有当前类的子类也会被搜索出来,想要精确的匹配,请打开options disable-sub-class true开关


使用参考

模糊搜索

# 查看加载,所有以com.kq开头的类
sc com.kq.*

打印类的详细信息

sc -d com.kq.springboot.controller.IndexController

打印出类的Field信息

sc -d -f com.kq.springboot.controller.IndexController