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

  • 相关阅读:
    C#中的Dictionary字典类介绍
    SQL server 2008r2 file is corrupt
    web service接口 wsdl和asmx有什么区别
    ascx
    C++: C++函数声明的时候后面加const
    C++三种野指针及应对/内存泄露
    C++构造和析构的顺序
    atan2()如何转换为角度
    C++11左值引用和右值引用
    C++ STL详解
  • 原文地址:https://www.cnblogs.com/linlf03/p/11028156.html
Copyright © 2011-2022 走看看