知道给定的JVM示例当前加载了哪些类会很方便。
例如,是否有某种方法可以让它们通过JVisualVM?
编辑:我知道@Java - Get a list of all Classes loaded in the JVM给出的解决方案,但我想知道是否有一种方法可以通过JVisualVM或其他工具来实现这一点。目前我正在处理RCP应用程序,我宁愿不必通过java
工具运行应用程序(我很懒,是的)。
知道给定的JVM示例当前加载了哪些类会很方便。
例如,是否有某种方法可以让它们通过JVisualVM?
编辑:我知道@Java - Get a list of all Classes loaded in the JVM给出的解决方案,但我想知道是否有一种方法可以通过JVisualVM或其他工具来实现这一点。目前我正在处理RCP应用程序,我宁愿不必通过java
工具运行应用程序(我很懒,是的)。
3条答案
按热度按时间izkcnapc1#
您特别提到了使用工具来获取这些信息,所以我假设您对非编程解决方案感兴趣。
jcmd
似乎是一种很好的方法。这已经在https://stackoverflow.com/a/72929356/9773982中解决了,但我想添加另一个子命令。
jcmd <jvm_pid> VM.class_hierarchy
(之前提到过)jcmd <jvm_pid> VM.classloaders show-classes
个qnzebej02#
你试过
jconsole
吗?Jconsole应该能够显示加载类的列表,参见jConsole Documentation。
请参见查看概述信息部分,截图显示了加载的类数量。另外,您可以看到一个名为Classes的选项卡,这是类加载信息所在。
p4rjhz4m3#
您可以使用VisualVM来执行此操作:
1.$JAVA_HOME/bin/jpajalvm
1.选择您的jvm应用程序->采样器->内存->点击“堆转储”
1.打开创建的堆转储->点击“类”。在底部有一个搜索字段。
不客气。