扩展类加载器(Extension)
扩展类加载器是指由原SUN公司实现的sun.misc.Launcher类(是PlatformClassLoader类),它是由java语言编写,父加载器是根类加载器。负责加载<JAVA_HOME>\jre\lib\ext目录下的类库或者系统变量"java.ext.dirs"指定的目录下的类库。
以下是ExtClassLoader加载目录源码:
private static File[] getExtDirs() {
String s = System.getProperty("java.ext.dirs");
File[] dirs;
if (s != null) {
StringTokenizer st =
new StringTokenizer(s, File.pathSeparator);
int count = st.countTokens();
dirs = new File[count];
for (int i = 0; i < count; i++) {
dirs[i] = new File(st.nextToken());
}
} else {
dirs = new File[0];
}
return dirs;
}
public static void main(String[] args) {
//DNSNameService类位于dnsns.jar包中,它存在于jre/lib/ext目录下
ClassLoader cl = DNSNameService.class.getClassLoader();
System.out.println(cl);//打印结果sun.misc.Launcher$ExtClassLoader
}