了解给定 JVM 实例当前加载了哪些类会很方便。
例如,有什么方法可以通过 JVisualVM 获取它们吗?
编辑:我知道@ Java - 获取 JVM 中加载的所有类的列表给出的解决方案,但我想知道是否有办法通过 JVisualVM 或其他工具来做到这一点。目前,我正在开发 RCP 应用程序,并且我不想通过
java
工具运行该应用程序(是的,我很懒)。
你尝试过吗
jconsole
?
Jconsole 应该能够显示已加载类的列表,请参阅 jConsole 文档。
参见查看概述信息部分,屏幕截图显示了加载的类的数量。另外,您可以看到一个名为 Classes 的选项卡,这是类加载信息所在的位置。
您可以使用 VisualVM 来完成此操作:
欢迎您。
您特别提到使用工具来获取此信息,所以我假设您对非编程解决方案感兴趣。
jcmd
似乎是一个很好的方法。
这已经在https://stackoverflow.com/a/72929356/9773982中解决,但我想添加另一个子命令。
jcmd <jvm_pid> VM.class_hierarchy
(前面提到过)
jcmd <jvm_pid> VM.classloaders show-classes