从 JDK11 中提取 JRE

子兮子兮 No can, but will. 本文由博客端 https://zixizixi.cn 主动推送

之前开发项目一直都是用 Java8,开发环境用 JDK8,生成环境部署运行时用 JRE8。Oracle 官方提供 JRE8 的安装包,安装 JRE 也很方便。

最近开发 Kotlin 项目开始用 Java11,然而现在 Oracle 官方已经不提供 JRE11 的安装包了,但是可以通过 jlink 命令自行提取 JRE。

JDK11 的安装包有 150MB 左右,而完全提取的 JRE 打包成 rar 压缩文件后只有 40MB 左右,足足小了 100 多 MB,解压后也比安装后的 JDK 占用空间小 120MB 左右。

如果服务器空间足够,用 JDK 还是 JRE 就看自己心情了,但如果服务器空间很紧张,还是很有必要用 JRE 的。

提取步骤

首先通过命令行工具进入 JDK11 的安装目录

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 的内置模块,多个模块名之间通过半角逗号 , 分隔,可按需删减不需要的模块,但为避免运行出错,一般不建议删减模块,除非服务器空间非常有限。

  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2871 引用 • 8087 回帖 • 717 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...