Heim  >  Artikel  >  Java  >  Die Verwendung und Klassifizierung von Java-Klassenladern

Die Verwendung und Klassifizierung von Java-Klassenladern

WBOY
WBOYnach vorne
2023-04-26 08:19:06998Durchsuche

Klassifizierung

1. Der in C++ geschriebene Boot-Klassenlader ist der mit der JVM gelieferte Klassenlader. Er ist für die Kernbibliothek der Java-Plattform verantwortlich und wird zum Laden der Kernklassenbibliothek verwendet . Konstruieren Sie ExtClassLoader und AppClassLoader. Der Loader kann die

Java-Plattform-Kernbibliothek nicht direkt abrufen. Öffnen Sie sie mit der Komprimierungssoftware. Dieses JRE ist ein öffentliches JRE, kein dediziertes JRE im JDK-Verzeichnis.

2. Der Erweiterungsklassenlader

ist für das JAR-Paket im Jrelibext-Verzeichnis verantwortlich Das Verzeichnis in die Arbeitsbibliothek. Hier ist jre auch ein öffentlicher jre. Pfad, der am häufigsten verwendete Ladegerät

Instanz

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
 
         * */
    }
}

Das obige ist der detaillierte Inhalt vonDie Verwendung und Klassifizierung von Java-Klassenladern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen