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

问题描述 投票:0回答:3

了解给定 JVM 实例当前加载了哪些类会很方便。

例如,有什么方法可以通过 JVisualVM 获取它们吗?

编辑:我知道@ Java - 获取 JVM 中加载的所有类的列表给出的解决方案,但我想知道是否有办法通过 JVisualVM 或其他工具来做到这一点。目前,我正在开发 RCP 应用程序,并且我不想通过

java
工具运行该应用程序(是的,我很懒)。

java jvm jvisualvm
3个回答
0
投票

你尝试过吗

jconsole

Jconsole 应该能够显示已加载类的列表,请参阅 jConsole 文档

参见查看概述信息部分,屏幕截图显示了加载的类的数量。另外,您可以看到一个名为 Classes 的选项卡,这是类加载信息所在的位置。


0
投票

您可以使用 VisualVM 来完成此操作:

  1. $JAVA_HOME/bin/jvisialvm
  2. 选择您的 jvm 应用程序 -> Sampler -> Memory -> 单击“Heap Dump”
  3. 打开创建的堆转储 -> 单击“类”。底部的搜索字段在哪里。

欢迎您。


0
投票

您特别提到使用工具来获取此信息,所以我假设您对非编程解决方案感兴趣。

jcmd
似乎是一个很好的方法。

这已经在https://stackoverflow.com/a/72929356/9773982中解决,但我想添加另一个子命令。

jcmd <jvm_pid> VM.class_hierarchy
(前面提到过)

jcmd <jvm_pid> VM.classloaders show-classes

© www.soinside.com 2019 - 2024. All rights reserved.