Java之Classloader

来源:互联网 发布:java基础知识书籍 编辑:程序博客网 时间:2024/05/29 17:34



Java的Classloader有继承关系,子加载器加载类的时候,会先调用父加载器去加载。如果父加载器可以加载则加载,不可以加载则自己加载。


Java的classLoader有如下关系:


1.  BootStrap ClassLoader

2. Extension ClassLoader

3. AppClassLoader

4. Custom ClassLoader


1:最父级的类加载器,加载 \jre\lib\rt.jar 或者 Xbootclasspath指定的jar

2 加载lib\ext\*.jar  或Djava.ext.dirs指定的jar

3 加载CLASSPATH或者Djava.class.path指定的jar

4 自己写的类加载器


。所有的类加载器都有自己的加载路径,所以上级类加载器不是哪个类都可以加载的。我们在windows环境变量配置中配置

的classpath下的jar不一定会被加载,如果是自己在eclipse中加的lib,启动的时候,eclipse 会默认java -cp xx\xx\xx.jar去加载,

。java会为每一个jar和每一个文件夹路径都新建一个classloader(URLClassLoader).



还有一个URLClassLoader是作为AppClassLoader和ExtClassLoader的父类,这个类主要是提供文件读取的作用让他们使用。