学习反射章节-获取类加载器及其类加载路径

public class 类加载器 {
    public static void main(String[] args) throws IOException {
        //获取系统类加载器
        ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
        System.out.println(systemClassLoader);
        //获取拓展类加载器
        ClassLoader extensionClassLoader = systemClassLoader.getParent();
        System.out.println(extensionClassLoader);
        System.out.println(ClassLoader.getPlatformClassLoader());
        //获取根类加载器,结果无法获取,为null
        //因为根类加载器没有继承ClassLoader抽象类,是C++实现的,所以拓展类加载器的getParent()返回null.
        System.out.println(extensionClassLoader.getParent());

        //获取系统类加载器的类加载路径
        Enumeration<URL> enumeration = systemClassLoader.getResources("");
        while (enumeration.hasMoreElements()) {
            System.out.println(enumeration.nextElement());
        }
        //获取拓展类加载器的类加载路径
        System.out.println(System.getProperty("java.ext.dirs"));
    }
    
}

运行结果如下:

jdk.internal.loader.ClassLoaders$AppClassLoader@2437c6dc
jdk.internal.loader.ClassLoaders$PlatformClassLoader@7c30a502
jdk.internal.loader.ClassLoaders$PlatformClassLoader@7c30a502
null
file:/E:/study/JavaSE/out/production/JavaSE/
null

posted @   -和时间赛跑-  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示