聊聊java9的classloader

167次阅读

共计 1450 个字符,预计需要花费 4 分钟才能阅读完成。


本文主要研究一下 java9 的 classloader
java9 之前的 classloader

bootstrap classloader 加载 rt.jar,jre/lib/endorsed
ext classloader 加载 jre/lib/ext
application classloader 加载 -cp 指定的类

java9 及之后的 classloader
bootstrap classloader 加载 lib/modules
java.base java.security.sasl
java.datatransfer java.xml
java.desktop jdk.httpserver
java.instrument jdk.internal.vm.ci
java.logging jdk.management
java.management jdk.management.agent
java.management.rmi jdk.naming.rmi
java.naming jdk.net
java.prefs jdk.sctp
java.rmi jdk.unsupported
ext classloader 更名为 platform classloader,加载 lib/modules
java.activation* jdk.accessibility
java.compiler* jdk.charsets
java.corba* jdk.crypto.cryptoki
java.scripting jdk.crypto.ec
java.se jdk.dynalink
java.se.ee jdk.incubator.httpclient
java.security.jgss jdk.internal.vm.compiler*
java.smartcardio jdk.jsobject
java.sql jdk.localedata
java.sql.rowset jdk.naming.dns
java.transaction* jdk.scripting.nashorn
java.xml.bind* jdk.security.auth
java.xml.crypto jdk.security.jgss
java.xml.ws* jdk.xml.dom
java.xml.ws.annotation* jdk.zipfs
application classloader 加载 -cp,-mp 指定的类
jdk.aot jdk.jdeps
jdk.attach jdk.jdi
jdk.compiler jdk.jdwp.agent
jdk.editpad jdk.jlink
jdk.hotspot.agent jdk.jshell
jdk.internal.ed jdk.jstatd
jdk.internal.jvmstat jdk.pack
jdk.internal.le jdk.policytool
jdk.internal.opt jdk.rmic
jdk.jartool jdk.scripting.nashorn.shell
jdk.javadoc jdk.xml.bind*
jdk.jcmd jdk.xml.ws*
jdk.jconsole
小结
java9 模块化之后,对 classloader 有所改造,其中一点就是将 ext classloader 改为 platform classloader,另外模块化之后,对应的 classloader 加载各自对应的模块。
doc
java9-three-level hierarchy of class loaders

正文完
 0