之前开发项目一直都是用 Java8,开发环境用 JDK8,生成环境部署运行时用 JRE8。Oracle 官方提供 JRE8 的安装包,安装 JRE 也很方便。
最近开发 Kotlin 项目开始用 Java11,然而现在 Oracle 官方已经不提供 JRE11 的安装包了,但是可以通过 jlink
命令自行提取 JRE。
JDK11 的安装包有 150MB 左右,而完全提取的 JRE 打包成 rar 压缩文件后只有 40MB 左右,足足小了 100 多 MB,解压后也比安装后的 JDK 占用空间小 120MB 左右。
如果服务器空间足够,用 JDK 还是 JRE 就看自己心情了,但如果服务器空间很紧张,还是很有必要用 JRE 的。
cd C:\java\jdk-11.0.9
bin\jlink.exe --module-path jmods --add-modules java.base,jdk.internal.le,java.compiler,jdk.internal.opt,java.datatransfer,jdk.internal.vm.ci,java.desktop,jdk.internal.vm.compiler,java.instrument,jdk.internal.vm.compiler.management,java.logging,jdk.jartool,java.management,jdk.javadoc,java.management.rmi,jdk.jcmd,java.naming,jdk.jconsole,java.net.http,jdk.jdeps,java.prefs,jdk.jdi,java.rmi,jdk.jdwp.agent,java.scripting,jdk.jfr,java.se,jdk.jlink,java.security.jgss,jdk.jshell,java.security.sasl,jdk.jsobject,java.smartcardio,jdk.jstatd,java.sql,jdk.localedata,java.sql.rowset,jdk.management,java.transaction.xa,jdk.management.agent,java.xml,jdk.management.jfr,java.xml.crypto,jdk.naming.dns,jdk.accessibility,jdk.naming.ldap,jdk.aot,jdk.naming.rmi,jdk.attach,jdk.net,jdk.charsets,jdk.pack,jdk.compiler,jdk.rmic,jdk.crypto.cryptoki,jdk.scripting.nashorn,jdk.crypto.ec,jdk.scripting.nashorn.shell,jdk.crypto.mscapi,jdk.sctp,jdk.dynalink,jdk.security.auth,jdk.editpad,jdk.security.jgss,jdk.hotspot.agent,jdk.unsupported,jdk.httpserver,jdk.unsupported.desktop,jdk.internal.ed,jdk.xml.dom,jdk.internal.jvmstat,jdk.zipfs --output jre
上述命令从 --add-modules
后面到 --output
之前的部分全部是 Java11 的内置模块,多个模块名之间通过半角逗号 ,
分隔,可按需删减不需要的模块,但为避免运行出错,一般不建议删减模块,除非服务器空间非常有限。
output
参数用于指定提取 JRE 时的输出目录,可自定义为其他路径。提取成功后的 JRE 目录如下所示:内容声明 | |
---|---|
标题: 从 JDK11 中提取 JRE | |
链接: https://zixizixi.cn/jlink-jdk11-extract-jre11 | 来源: iTanken |
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请保留此声明。
|