Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取JVM上所有引导类的列表?_Java_Classloader - Fatal编程技术网

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
表示的…