>  기사  >  Java  >  Java 클래스 로더의 사용 및 분류

Java 클래스 로더의 사용 및 분류

WBOY
WBOY앞으로
2023-04-26 08:19:061002검색

Classification

1. C++로 작성된 부트 클래스 로더는 JVM

Java 플랫폼의 핵심 라이브러리를 담당하며 핵심 클래스 라이브러리를 로드하는 데 사용됩니다. . ExtClassLoader 및 AppClassLoader를 구성합니다. 로더는

Java 플랫폼 핵심 라이브러리인 jrelibrt.jar을 직접 얻을 수 없습니다. 내부 클래스는 우리가 일반적으로 배우는 것입니다. 이 jre는 jdk 디렉토리의 전용 jre가 아닌 공개 jre입니다.

2. 확장 클래스 로더인 는 jrelibext 디렉토리의 jar 패키지를 담당합니다.

또는 -D java.ext.dirs는 다음에서 jar 패키지를 지정합니다.

여기서 jre는 공개 jre

3입니다. 시스템 클래스 로더

는 java -classpath 또는 -D java.class가 가리키는 디렉토리에 클래스와 jar 패키지를 로드하는 일을 담당합니다. 가장 일반적으로 사용되는 로딩 Device

Instance

package com.volcano.reflection;
 
public class TestReflection4 {
    public static void main(String[] args) {
        //获取系统类加载器
        ClassLoader classLoader = ClassLoader.getSystemClassLoader();
        System.out.println(classLoader);
        //获取拓展类加载器
        classLoader = classLoader.getParent();
        System.out.println(classLoader);
        //获取引导类加载器(是直接无法获取的)
        classLoader = classLoader.getParent();
        System.out.println(classLoader);
 
        //测试当前类是由哪个类加载器加载的——引导类加载器
        System.out.println(TestReflection4.class.getClassLoader());
        //测试JDK内置的类是由哪个类加载器加载的——系统类加载器null
        System.out.println(Object.class.getClassLoader());
 
        //如何获得系统类加载器的加载的类的路径
        System.out.println(System.getProperty("java.class.path"));
        /*之前用过的commons-io和自己写的类也在其中
        * E:\JDK\jre\lib\charsets.jar;
        * E:\JDK\jre\lib\deploy.jar;
        * E:\JDK\jre\lib\ext\access-bridge-64.jar;
        * E:\JDK\jre\lib\ext\cldrdata.jar;
        * E:\JDK\jre\lib\ext\dnsns.jar;
        * E:\JDK\jre\lib\ext\jaccess.jar;
        * E:\JDK\jre\lib\ext\jfxrt.jar;
        * E:\JDK\jre\lib\ext\localedata.jar;
        * E:\JDK\jre\lib\ext\nashorn
        * .jar;E:\JDK\jre\lib\ext\sunec.jar;
        * E:\JDK\jre\lib\ext\sunjce_provider.jar;
        * E:\JDK\jre\lib\ext\sunmscapi.jar;
        * E:\JDK\jre\lib\ext\sunpkcs11
        * .jar;E:\JDK\jre\lib\ext\zipfs.jar;
        * E:\JDK\jre\lib\javaws.jar;
        * E:\JDK\jre\lib\jce.jar;
        * E:\JDK\jre\lib\jfr.jar;
        * E:\JDK\jre\lib\jfxswt.jar;
        * E:\JDK\jre\lib\jsse.jar;
        * E:\JDK\jre\lib\management-agent.jar;
        * E:\JDK\jre\lib\plugin.jar;
        * E:\JDK\jre\lib\resources.jar;
        * E:\JDK\jre\lib\rt.jar;
        * F:\云\Code\JavaSE\out\production\基础语法;
        * F:\云\Code\JavaSE\基础语法\src\com\lib\commons-io-2.6.jar;
        * D:\IntelliJ IDEA 2018.2.4\lib\idea_rt.jar
 
         * */
    }
}
경로입니다.

위 내용은 Java 클래스 로더의 사용 및 분류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제