获取给定JVM示例中当前加载的所有类的列表

bwntbbo3  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(201)

知道给定的JVM示例当前加载了哪些类会很方便。
例如,是否有某种方法可以让它们通过JVisualVM?
编辑:我知道@Java - Get a list of all Classes loaded in the JVM给出的解决方案,但我想知道是否有一种方法可以通过JVisualVM或其他工具来实现这一点。目前我正在处理RCP应用程序,我宁愿不必通过java工具运行应用程序(我很懒,是的)。

izkcnapc

izkcnapc1#

您特别提到了使用工具来获取这些信息,所以我假设您对非编程解决方案感兴趣。jcmd似乎是一种很好的方法。
这已经在https://stackoverflow.com/a/72929356/9773982中解决了,但我想添加另一个子命令。
jcmd <jvm_pid> VM.class_hierarchy(之前提到过)
jcmd <jvm_pid> VM.classloaders show-classes

qnzebej0

qnzebej02#

你试过jconsole吗?
Jconsole应该能够显示加载类的列表,参见jConsole Documentation
请参见查看概述信息部分,截图显示了加载的类数量。另外,您可以看到一个名为Classes的选项卡,这是类加载信息所在。

p4rjhz4m

p4rjhz4m3#

您可以使用VisualVM来执行此操作:
1.$JAVA_HOME/bin/jpajalvm
1.选择您的jvm应用程序->采样器->内存->点击“堆转储”
1.打开创建的堆转储->点击“类”。在底部有一个搜索字段。
不客气。

相关问题