【发布时间】:2016-05-13 15:13:26
【问题描述】:
这是我的 Java 项目的结构:
package: com.study.test
---- HelloWorld.java
---- Test.java
HelloWorld.java的内容:
package com.study.test;
public class HelloWorld {}
Test.java的内容:
package com.study.test;
public class Test {
public static void main(String[] args) {
System.out.println(System.getProperty("java.ext.dirs"));
System.out.println(HelloWorld.class.getClassLoader());
}
}
“java.ext.dirs”的值为:
D:\glassfish4\jdk7\jre\lib\ext;C:\windows\Sun\Java\lib\ext
我把类文件HelloWorld.class放在目录下:
D:\glassfish4\jdk7\jre\lib\ext\com\study\test
但是“System.out.println(HelloWorld.class.getClassLoader());”的输出是:
sun.misc.Launcher$AppClassLoader@70a0afab
为什么 ExtClassLoader 没有加载 HelloWorld 类? ExtClassLoader 是 AppClassLoader 的父类加载器。
【问题讨论】:
-
这是一篇关于类加载器做什么的很好的文章:blogs.oracle.com/sundararajan/entry/…
标签: java classloader