Java 获取JVM上所有引导类的列表?
对于类加载器,有一个名为Java 获取JVM上所有引导类的列表?,java,classloader,Java,Classloader,对于类加载器,有一个名为findBootstrapClass的方法,该方法在引导时返回一个类。是否有方法查找已加载的类?您可以尝试首先通过调用来获取引导类加载程序 ClassLoader bootstrapLoader = ClassLoader.getSystemClassLoader().getParent(); 然后获取这个类加载器的类,如下所述: 但是请注意,获取引导类加载器是不可靠的,因为它可能不显式存在。因此ClassLoader.getSystemClassLoader().ge
findBootstrapClass
的方法,该方法在引导时返回一个类。是否有方法查找已加载的类?您可以尝试首先通过调用来获取引导类加载程序
ClassLoader bootstrapLoader = ClassLoader.getSystemClassLoader().getParent();
然后获取这个类加载器的类,如下所述:
但是请注意,获取引导类加载器是不可靠的,因为它可能不显式存在。因此ClassLoader.getSystemClassLoader().getParent()
可能会返回null,如下的Javadoc中所述:
返回委托的父类加载器。一些实现
可以使用null表示引导类装入器。这种方法将
如果此类装入器的父类为空,则在此类实现中返回null
引导类装入器
在Java 2和Java 8之间的大多数实现中,表达式
ClassLoader.getSystemClassLoader().getParent()
将为您提供扩展类加载器,因此您必须使用ClassLoader.getSystemClassLoader().getParent().getParent()
来获取引导加载器,使用Object.class.getClassLoader()
会简单得多,因为如果不是java.lang.Object
通过引导加载程序加载,还应该加载什么?但是,我不知道有哪种环境中引导加载程序不是由null
表示的…