首页  >  文章  >  Java  >  如何获取 Java 虚拟机 (JVM) 中加载的类的完整列表?

如何获取 Java 虚拟机 (JVM) 中加载的类的完整列表?

DDD
DDD原创
2024-10-26 12:44:02751浏览

How to Get a Comprehensive List of Classes Loaded in the Java Virtual Machine (JVM)?

Java 获取 JVM 中的类列表

获取 Java 虚拟机 (JVM) 中加载的类的完整列表可以成为故障排除、分析性能的宝贵资源,并探索应用程序的结构。然而,正如您所提到的,某些类可能最初不会加载,需要动态检索。

虽然 Java 没有提供直接的编程方法来实现这一点,但存在一种替代方法,可以提供全面的视图已加载的类。

java -verbose:class 命令行选项可用于启用类加载活动的详细日志记录。执行时,JVM 会生成详细的输出,其中包括以下信息:

  • 从中加载类的打开的 JAR 文件的名称
  • 加载的类的名称及其各自在其中的位置JAR 文件

例如,运行以下命令:

java -verbose:class ....

生成与此类似的输出:

[Opened /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/sunrsasign.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/jsse.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/jce.jar]
[Opened /usr/java/j2sdk1.4.1/jre/lib/charsets.jar]
[Loaded java.lang.Object from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.io.Serializable from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.lang.Comparable from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.lang.CharSequence from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]
[Loaded java.lang.String from /usr/java/j2sdk1.4.1/jre/lib/rt.jar]

通过检查此输出,您可以可以识别加载的类及其各自的包。该技术提供了 JVM 中加载的类的全面概述,有助于调试、监视和分析 Java 应用程序。有关 java -verbose:class 选项的更多信息,请参阅 Oracle 官方文档。

以上是如何获取 Java 虚拟机 (JVM) 中加载的类的完整列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn