1、创建Sample
public class MyTest22 { static { System.out.println("MyTest22 initializer"); } public static void main(String[] args) { System.out.println(MyTest22.class.getClassLoader()); System.out.println(MyTest1.class.getClassLoader()); } }
打印结果:
MyTest22 initializer sun.misc.Launcher$AppClassLoader@18b4aac2 sun.misc.Launcher$AppClassLoader@18b4aac2
2、现在要将扩展类加载器的路径指定为当前路径
显示结果:
会发现还是应用加载器加载。这里扩展类加载器会有一些区别,它需要打包成class打包成jar文件
然后将MyTest1.class打包到jar文件中
此时会发现有com文件夹下有MyTest1.class, test.jar中也有MyTest1.class
最终运行结果:
MyTest1是由扩展类加载器加载的。