java - 如何查找类加载器加载哪些 jar 以及以什么顺序加载?

标签 java jar classloader

我在其他地方找不到这个问题的明确答案,所以我会在这里尝试:

是否有某种方式(编程方式或其他方式)来获取应用程序类加载器按照加载的确切顺序加载的 JAR/类列表? 应用程序类加载器是指在应用服务器(WLS、WAS、JBoss...)中加载 EAR 应用程序的类加载器,但显然,它适用于任何类加载器。

所以,概括地说,我想找出指定类加载器加载的 JAR 的列表和顺序。不是单个类,通过调用 classloader.getPackages() 很容易找到,而是由这个类加载器加载的 JAR 文件列表。

最佳答案

您是否尝试过使用 JVM 选项 -verbose:class。它显示所有加载的 JAR 文件和类。

例子:

[Opened C:\Program Files\JDK160~1\jre\lib\rt.jar]
[Loaded java.lang.Object from C:\Program Files\JDK160~1\jre\lib\rt.jar]

关于java - 如何查找类加载器加载哪些 jar 以及以什么顺序加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179858/

相关文章:

java - 这是反转链表的糟糕解决方案吗?

java - 加载检测类时避免注入(inject)

jax-ws - 未找到 ProviderImpl Jboss 5.1

java - 为什么在我的 IDE 中找不到 javafx.mail.jar Java 库?

java - Ide CLASSPATH 与系统范围的 CLASSPATH

java - 有没有办法在不知道包名的情况下加载特定路径中的所有类?

java - 考虑以下用 Java 编写的程序。为什么这个输出**2 2**。我认为这应该是输出 **1 1**

java - Thread.sleep() 的精确替代方案

java - Hibernate 查询 - 按时间戳获取最新版本?

android - 无法在 Android Studio 项目中引用导入的 jar 库