java 获取JVM中所有类加载器的列表

nr7wwzry  于 2023-05-21  发布在  Java
关注(0)|答案(2)|浏览(138)

是否有可能获得JVM中所有类加载器的列表,或者至少是Java EE服务器中与Web应用程序相关的所有类加载器(在我的情况下是WebLogic)。

eaf3rand

eaf3rand1#

下面是对类加载器层次结构的很好的概述:
Archived version of http://e-docs.bea.com/wls/docs81/programming/classloading.html
http://weblogic.sys-con.com/node/42876
你可以用

ClassLoader.getParent()

浏览当前应用程序的应用程序解析树,但你真的不能浏览子应用程序的类加载器。

bis0qfac

bis0qfac2#

您可以将this answer与以下代码结合使用,以接近每个类加载器。

Thread.getAllStackTraces().keySet() //Get all active threads
.stream()
.map(thread -> thread.getContextClassLoader()) //Get the classloader of the thread (may be null)
.filter(Objects::nonNull) //Filter out every null object from the stream
.toList()

相关问题