main方法类 为何由AppClassLoader加载

AppClassLoader

AppClassLoader应用类加载器,又称系统类加载器,负责在JVM启动时加载来自命令java中的classpath或者java.class.path系统属性或者CLASSPATH操作系统属性所指定的JAR类包和类路径

Bootstrap ClassLoder、ExtClassLoader、AppClassLoader这么多ClassLoader,它们是从哪里加载class的,这个问题jdk源码中sun.misc.Launcher已经给出回答:Bootstrap ClassLoder加载的是System.getProperty("sun.boot.class.path");、ExtClassLoader加载的是System.getProperty("java.ext.dirs")、AppClassLoader加载的是System.getProperty("java.class.path"),

https://juejin.im/post/5c7a41b0e51d4550690476b3

awt.toolkit=sun.awt.windows.WToolkit
file.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.awt.printerjob=sun.awt.windows.WPrinterJob


java.class.path=D:javajdk1.8.0_131jrelibcharsets.jar;D:javajdk1.8.0_131jrelibdeploy.jar;D:javajdk1.8.0_131jrelibextaccess-bridge-64.jar;D:javajdk1.8.0_131jrelibextcldrdata.jar;D:javajdk1.8.0_131jrelibextdnsns.jar;D:javajdk1.8.0_131jrelibextjaccess.jar;D:javajdk1.8.0_131jrelibextjfxrt.jar;D:javajdk1.8.0_131jrelibextlocaledata.jar;D:javajdk1.8.0_131jrelibext ashorn.jar;D:javajdk1.8.0_131jrelibextsunec.jar;D:javajdk1.8.0_131jrelibextsunjce_provider.jar;D:javajdk1.8.0_131jrelibextsunmscapi.jar;D:javajdk1.8.0_131jrelibextsunpkcs11.jar;D:javajdk1.8.0_131jrelibextzipfs.jar;D:javajdk1.8.0_131jrelibjavaws.jar;D:javajdk1.8.0_131jrelibjce.jar;D:javajdk1.8.0_131jrelibjfr.jar;D:javajdk1.8.0_131jrelibjfxswt.jar;D:javajdk1.8.0_131jrelibjsse.jar;D:javajdk1.8.0_131jrelibmanagement-agent.jar;D:javajdk1.8.0_131jrelibplugin.jar;D:javajdk1.8.0_131jrelib esources.jar;D:javajdk1.8.0_131jrelib t.jar;D:javaIdeaProjectsgitee-test argetclasses;D:javajarmavenorgspringframeworkspring-core4.3.6.RELEASEspring-core-4.3.6.RELEASE.jar;D:javajarmavenorgspringframeworkspring-beans4.3.6.RELEASEspring-beans-4.3.6.RELEASE.jar;D:javajarmavenorgspringframeworkspring-context4.3.6.RELEASEspring-context-4.3.6.RELEASE.jar;D:javajarmavenorgspringframeworkspring-aop4.3.6.RELEASEspring-aop-4.3.6.RELEASE.jar;D:javajarmavenorgspringframeworkspring-expression4.3.6.RELEASEspring-expression-4.3.6.RELEASE.jar;D:javajarmavenaopallianceaopalliance1.0aopalliance-1.0.jar;D:javajarmavenorgaspectjaspectjweaver1.8.9aspectjweaver-1.8.9.jar;D:javajarmavenorgaspectjaspectjrt1.5.4aspectjrt-1.5.4.jar;D:javajarmavenorgspringframeworkspring-test4.3.6.RELEASEspring-test-4.3.6.RELEASE.jar;D:javajarmavenorgslf4jslf4j-api1.7.25slf4j-api-1.7.25.jar;D:javajarmavenorgslf4jjcl-over-slf4j1.7.25jcl-over-slf4j-1.7.25.jar;D:javajarmavenchqoslogbacklogback-core1.1.7logback-core-1.1.7.jar;D:javajarmavenchqoslogbacklogback-classic1.1.7logback-classic-1.1.7.jar;D:javajarmavenjunitjunit4.12junit-4.12.jar;D:javajarmavenorghamcresthamcrest-core1.3hamcrest-core-1.3.jar;D:javajarmavenorgcodehausgroovygroovy2.1.6groovy-2.1.6.jar;D:javajarmavenantlrantlr2.7.7antlr-2.7.7.jar;D:javajarmavenorgow2asmasm-tree4.0asm-tree-4.0.jar;D:javajarmavenorgow2asmasm-commons4.0asm-commons-4.0.jar;D:javajarmavenorgow2asmasm4.0asm-4.0.jar;D:javajarmavenorgow2asmasm-util4.0asm-util-4.0.jar;D:javajarmavenorgow2asmasm-analysis4.0asm-analysis-4.0.jar;D:javajarmavenorgcodehausgroovygroovy-jsr2232.1.6groovy-jsr223-2.1.6.jar;D:javajarmavenorgprojectlomboklombok1.18.2lombok-1.18.2.jar;D:programIntelliJ IDEA 2019.2.4libidea_rt.jar
java.class.version=52.0
java.endorsed.dirs=D:javajdk1.8.0_131jrelibendorsed

java.ext.dirs=D:javajdk1.8.0_131jrelibext;C:WindowsSunJavalibext

java.home=D:javajdk1.8.0_131jre
java.io.tmpdir=C:UsersADMINI~1AppDataLocalTemp
java.library.path=D:javajdk1.8.0_131in;C:WindowsSunJavain;C:Windowssystem32;C:Windows;C:Program Files (x86)Common FilesOracleJavajavapath;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;D:programapache-maven-3.0.5in;D:programapache-tomcat-7.0.30lib;D:programapache-tomcat-7.0.30in;D:programgradle-6.0in;D:programandroid-sdk-windows ools;D:programandroid-sdk-windowsplatform-tools;D:programGitcmd;D:program ode-v10.13.0-win-x64;D:program ode;D:programGpg4win..GnuPGin;D:programgradle-6.0in;D:javajdk1.8.0_131in;D:javajre1.8.0_131in;C:UsersAdministratorAppDataLocalGitHubDesktopin;D:programMicrosoft VS Codein;D:programIntelliJ IDEA 2019.2.4in;;.
java.rmi.server.randomIDs=true
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.8.0_131-b11
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.specification.version=1.8
java.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
java.version=1.8.0_131
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.specification.version=1.8
java.vm.vendor=Oracle Corporation
java.vm.version=25.131-b11
line.separator=
os.arch=amd64
os.name=Windows 7
os.version=6.1
path.separator=;
sun.arch.data.model=64

sun.boot.class.path=D:javajdk1.8.0_131jrelib esources.jar;D:javajdk1.8.0_131jrelib t.jar;D:javajdk1.8.0_131jrelibsunrsasign.jar;D:javajdk1.8.0_131jrelibjsse.jar;D:javajdk1.8.0_131jrelibjce.jar;D:javajdk1.8.0_131jrelibcharsets.jar;D:javajdk1.8.0_131jrelibjfr.jar;D:javajdk1.8.0_131jreclasses

sun.boot.library.path=D:javajdk1.8.0_131jrein
sun.cpu.endian=little
sun.cpu.isalist=amd64
sun.desktop=windows
sun.io.unicode.encoding=UnicodeLittle
sun.java.command=com.matt.net.socket.SocketTest
sun.java.launcher=SUN_STANDARD
sun.jnu.encoding=GBK
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
sun.os.patch.level=Service Pack 1
user.country=CN
user.dir=D:javaIdeaProjectsgitee-test
user.home=C:UsersAdministrator
user.language=zh
user.name=Administrator
user.script=
user.timezone=GMT+08:00
user.variant=

原文地址:https://www.cnblogs.com/zhongchang/p/12089217.html