日期:2014-05-20  浏览次数:20680 次

类加载器原理小问题
Java code

//主要就是用来查看类加载器原理的
package Test;
public  class W{
    public static void main(String[] args) {
        ClassLoader cl =W.class.getClassLoader();
        while( (cl!=null) ){
            System.out.println(cl.getClass().getName());
            cl=cl.getParent();
        }
        System.out.println(cl);
        
    }
/*运行完以后怎么还是这样啊
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader
null
我已经把W导出jar包到ext目录下了。怎么回事啊???搞了一个多小时还是没搞通
按道理应该输出的是
sun.misc.Launcher$ExtClassLoader
null
才对。*/
}




------解决方案--------------------
我本地测试你的代码没啥问题,你检查下路径吧:
System.out.println("root:\n"+ System.getProperty("sun.boot.class.path"));
System.out.println("Ext:\n"+System.getProperty("java.ext.dirs")); // 这个路径对不对??
ClassLoader cl = CMD.class.getClassLoader();
while ((cl != null)) {
System.out.println(cl.getClass().getName());
cl = cl.getParent();
}
System.out.println(cl);