在JDK8中,rt.jar有64MB,tools.jar有17MB。
$ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home
$ ls
COPYRIGHT LICENSE README.html bin include javafx-src.zip jre lib man release src.zip
$ ls -lh ./jre/lib/rt.jar
-rw-r--r-- 1 root wheel 64M 10 5 18:39 ./jre/lib/rt.jar
$ ls -lh ./lib/tools.jar
-rw-r--r-- 1 root wheel 17M 10 5 18:40 ./lib/tools.jar
$ ls -lh lib/dt.jar
-rw-r--r-- 1 root wheel 159K 10 5 18:40 lib/dt.jar
JDK中的lib\tools.jar和JRE中的lib\rt.jar已從Java SE 9中刪除。這些JAR中可用的類和資源現在以文件中的內部格式存儲在lib目錄的命名模塊中。 可以使用稱為jrt的新方案來從運行時映像檢索這些類和資源。 依靠這些JAR位置的應用程序將不再工作。可參考:
- Java Platform, Standard Edition Oracle JDK 9 Migration Guide一文中的"Removed rt.jar and tools.jar"
- Quora: Why is rt.jar missing from JDK 9?
- JEP 261: Module System
JDK 13的目錄如下,可以看出在jmods目錄下有70個以jmod為后綴的文件。
$ cd /Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home
$ ls
bin conf include jmods legal lib man release
$ ls -lh jmods
16M java.base.jmod
111K java.compiler.jmod
50K java.datatransfer.jmod
12M java.desktop.jmod
33K java.instrument.jmod
111K java.logging.jmod
868K java.management.jmod
88K java.management.rmi.jmod
445K java.naming.jmod
695K java.net.http.jmod
74K java.prefs.jmod
365K java.rmi.jmod
43K java.scripting.jmod
2.1K java.se.jmod
599K java.security.jgss.jmod
80K java.security.sasl.jmod
52K java.smartcardio.jmod
74K java.sql.jmod
186K java.sql.rowset.jmod
3.9K java.transaction.xa.jmod
651K java.xml.crypto.jmod
4.3M java.xml.jmod
53K jdk.accessibility.jmod
279K jdk.aot.jmod
27K jdk.attach.jmod
1.8M jdk.charsets.jmod
8.3M jdk.compiler.jmod
337K jdk.crypto.cryptoki.jmod
147K jdk.crypto.ec.jmod
160K jdk.dynalink.jmod
6.9K jdk.editpad.jmod
2.3M jdk.hotspot.agent.jmod
99K jdk.httpserver.jmod
7.4K jdk.internal.ed.jmod
88K jdk.internal.jvmstat.jmod
348K jdk.internal.le.jmod
80K jdk.internal.opt.jmod
440K jdk.internal.vm.ci.jmod
6.0M jdk.internal.vm.compiler.jmod
13K jdk.internal.vm.compiler.management.jmod
207K jdk.jartool.jmod
1.3M jdk.javadoc.jmod
144K jdk.jcmd.jmod
459K jdk.jconsole.jmod
720K jdk.jdeps.jmod
824K jdk.jdi.jmod
108K jdk.jdwp.agent.jmod
458K jdk.jfr.jmod
392K jdk.jlink.jmod
647K jdk.jshell.jmod
5.3K jdk.jsobject.jmod
32K jdk.jstatd.jmod
9.3M jdk.localedata.jmod
70K jdk.management.agent.jmod
34K jdk.management.jfr.jmod
58K jdk.management.jmod
57K jdk.naming.dns.jmod
18K jdk.naming.rmi.jmod
23K jdk.net.jmod
107K jdk.pack.jmod
521K jdk.rmic.jmod
2.1M jdk.scripting.nashorn.jmod
54K jdk.scripting.nashorn.shell.jmod
23K jdk.sctp.jmod
63K jdk.security.auth.jmod
24K jdk.security.jgss.jmod
14K jdk.unsupported.desktop.jmod
16K jdk.unsupported.jmod
41K jdk.xml.dom.jmod
93K jdk.zipfs.jmod
使用jmod命令解壓后,結構如下:
> jmod extract --dir javabase java.base.jmod
> ls javabase
bin classes conf include legal lib man