zoukankan      html  css  js  c++  java
  • JVM 修改类加载器启动类加载器

    1、类加载器加载路径

    public class MyTest18 {
    
        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"));
    
    
        }
    }
    

      

    返回结果

    C:Program FilesJavajdk1.8.0_131jrelib
    esources.jar;C:Program FilesJavajdk1.8.0_131jrelib
    t.jar;C:Program FilesJavajdk1.8.0_131jrelibsunrsasign.jar;C:Program FilesJavajdk1.8.0_131jrelibjsse.jar;C:Program FilesJavajdk1.8.0_131jrelibjce.jar;C:Program FilesJavajdk1.8.0_131jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_131jrelibjfr.jar;C:Program FilesJavajdk1.8.0_131jreclasses
    
    C:Program FilesJavajdk1.8.0_131jrelibext;C:WindowsSunJavalibext
    
    C:Program FilesJavajdk1.8.0_131jrelibcharsets.jar;C:Program FilesJavajdk1.8.0_131jrelibdeploy.jar;C:Program FilesJavajdk1.8.0_131jrelibextaccess-bridge-64.jar;C:Program FilesJavajdk1.8.0_131jrelibextcldrdata.jar;C:Program FilesJavajdk1.8.0_131jrelibextdnsns.jar;C:Program FilesJavajdk1.8.0_131jrelibextjaccess.jar;C:Program FilesJavajdk1.8.0_131jrelibextjfxrt.jar;C:Program FilesJavajdk1.8.0_131jrelibextlocaledata.jar;C:Program FilesJavajdk1.8.0_131jrelibext
    ashorn.jar;C:Program FilesJavajdk1.8.0_131jrelibextsunec.jar;C:Program FilesJavajdk1.8.0_131jrelibextsunjce_provider.jar;C:Program FilesJavajdk1.8.0_131jrelibextsunmscapi.jar;C:Program FilesJavajdk1.8.0_131jrelibextsunpkcs11.jar;C:Program FilesJavajdk1.8.0_131jrelibextzipfs.jar;C:Program FilesJavajdk1.8.0_131jrelibjavaws.jar;C:Program FilesJavajdk1.8.0_131jrelibjce.jar;C:Program FilesJavajdk1.8.0_131jrelibjfr.jar;C:Program FilesJavajdk1.8.0_131jrelibjfxswt.jar;C:Program FilesJavajdk1.8.0_131jrelibjsse.jar;C:Program FilesJavajdk1.8.0_131jrelibmanagement-agent.jar;C:Program FilesJavajdk1.8.0_131jrelibplugin.jar;C:Program FilesJavajdk1.8.0_131jrelib
    esources.jar;C:Program FilesJavajdk1.8.0_131jrelib
    t.jar;D:workspacestudy jvm_demouildclassesjavamain;D:Program FilesJetBrainsIntelliJ IDEA 2017.1.4libidea_rt.jar
    

      将打印结果变成多行数据

    C:Program FilesJavajdk1.8.0_131jrelib
    esources.jar;
    C:Program FilesJavajdk1.8.0_131jrelib
    t.jar;
    C:Program FilesJavajdk1.8.0_131jrelibsunrsasign.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjsse.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjce.jar;
    C:Program FilesJavajdk1.8.0_131jrelibcharsets.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjfr.jar;
    C:Program FilesJavajdk1.8.0_131jreclasses
    
    C:Program FilesJavajdk1.8.0_131jrelibext;C:WindowsSunJavalibext
    
    C:Program FilesJavajdk1.8.0_131jrelibcharsets.jar;
    C:Program FilesJavajdk1.8.0_131jrelibdeploy.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextaccess-bridge-64.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextcldrdata.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextdnsns.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextjaccess.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextjfxrt.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextlocaledata.jar;
    C:Program FilesJavajdk1.8.0_131jrelibext
    ashorn.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextsunec.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextsunjce_provider.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextsunmscapi.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextsunpkcs11.jar;
    C:Program FilesJavajdk1.8.0_131jrelibextzipfs.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjavaws.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjce.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjfr.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjfxswt.jar;
    C:Program FilesJavajdk1.8.0_131jrelibjsse.jar;
    C:Program FilesJavajdk1.8.0_131jrelibmanagement-agent.jar;
    C:Program FilesJavajdk1.8.0_131jrelibplugin.jar;
    C:Program FilesJavajdk1.8.0_131jrelib
    esources.jar;
    C:Program FilesJavajdk1.8.0_131jrelib
    t.jar;
    D:workspacestudy jvm_demouildclassesjavamain;
    D:Program FilesJetBrainsIntelliJ IDEA 2017.1.4libidea_rt.jar
    

      

    2、修改类加载器启动类加载器

    现在想把自己生成的类交给启动类加载器,那要怎么做呢?

    主需要把生成的class文件放到根加载器的加载路径下 C:Program FilesJavajdk1.8.0_131jreclasses

    创建测试类

    public class MyTest18_1 {
    
        public static void main(String[] args) throws  Exception {
            MyTest16 loader1 = new MyTest16("loader1");
            loader1.setPath("D:/temp/");
            Class<?> clazz = loader1.loadClass("com.example.jvm.classloader.MyTest1");
    
            System.out.println("class: " +clazz.hashCode());
            System.out.println("class loader: " + clazz.getClassLoader());
    
        }
    }
    

      

    运行结果如下:

    class: 356573597
    class loader: null
    

      说明是启动加载器加载的MyTest1

  • 相关阅读:
    35 个 Java 代码性能优化总结
    P4172 [WC2006]水管局长(LCT)
    P4219 [BJOI2014]大融合(LCT)
    P1501 [国家集训队]Tree II(LCT)
    P4381 [IOI2008]Island(基环树+单调队列优化dp)
    P3332 [ZJOI2013]K大数查询(线段树套线段树+标记永久化)
    P3809 【模板】后缀排序
    P3813 [FJOI2017]矩阵填数(组合数学)
    P2147 [SDOI2008]洞穴勘测(LCT)
    P3924 康娜的线段树(期望)
  • 原文地址:https://www.cnblogs.com/linlf03/p/11028156.html
Copyright © 2011-2022 走看看