JVM 启动类加载器2

在运行期,一个Java类是由该类的完全限定名(binary name,二进制名)和用于加载该类的定义类加载器(defining loading)所共同决定的。
如果同样名字(即相同的完全限定名)的类由两个不同的加载器所加载,那么这些类就是不同的,即便.class文件的字节码完全一样,并且从相同的位置加载亦是如此。

1、创建Sample

public class MyTest23 {
    public static void main(String[] args) {
        //系统类加载器加载路径
        System.out.println(System.getProperty("sun.boot.class.path"));
        System.out.println();
        //扩展类加载器加载路径
        System.out.println(System.getProperty("java.ext.dirs"));
        System.out.println();
        //应用类加载器加载路径
        System.out.println(System.getProperty("java.class.path"));

    }
}

  和之前的代码使用一样的。然后修改启动启动加载器的路径。

运行结果:

在oracle的Hotspot实现中,系统属性sun.boot.class.path 如果改错,则运行会出错,提示错误信息: 
Error occurred duing initialization of VM

猜你喜欢

转载自www.cnblogs.com/linlf03/p/11029070.html
今日推荐