获取ClassLoader

普通环境中

//推荐这种
ClassLoader loader = null;
loader = Thread.currentThread().getContextClassLoader();
ClassLoader loader = null;
loader = ClassLoader.getSystemClassLoader();
ClassLoader loader = null;
loader = this.getClass().getClassLoader();
//有时候是null...

经过我自己的尝试,在本地的最普通环境中,上面三个classloader获取的对象是同一个

而且实际上都是AppClassLoader对象

AppClassLoader的父类URLClassLoader可以加载任意路径下的类


但是其实在不同的工作环境中获取到的ClassLoader可能是不同的

在jsp中:

★★★★★★★★★★★★★★★★★★★★★
ClassLoader loader = null;
loader = Thread.currentThread().getContextClassLoader();
//获取的是WebappClassLoader 
//是URLClassLoader的子类
//唯一能够正常使用的ClassLoader
★★★★★★★★★★★★★★★★★★★★★
ClassLoader loader = null;
loader = ClassLoader.getSystemClassLoader();
//获取的是AppClassLoader
//貌似有些功能不能正常使用
ClassLoader loader = null;
loader = this.getClass().getClassLoader();
//获取的是null

你可能感兴趣的:(获取ClassLoader)