我们正在从 Oracle JDK/JRE 切换到 OpenJDK。现在我只找到了 JDK,但我还想从 OpenJDK 获得一个 JRE。这是为了在客户端上安装我们的应用程序而不需要完整的 JDK。
有没有办法从适用于 Windows X64 的 OpenJDK 创建 JRE 包?
原文由 JimmyD 发布,翻译遵循 CC BY-SA 4.0 许可协议
我们正在从 Oracle JDK/JRE 切换到 OpenJDK。现在我只找到了 JDK,但我还想从 OpenJDK 获得一个 JRE。这是为了在客户端上安装我们的应用程序而不需要完整的 JDK。
有没有办法从适用于 Windows X64 的 OpenJDK 创建 JRE 包?
原文由 JimmyD 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如其他人所提到的,自 Java 9 以来,不再有单独的 JRE 与 JDK 一起分发。您将需要使用 jlink
并指定您的代码所依赖的模块以生成自定义 jre。
因为这可能很麻烦,所以我创建了一个基于 Web 的工具,以便更轻松地使用 jlink
.该工具将为您提供正确的 jlink
命令以根据您的需要运行。
我还提供了一种为那些只想要基本的轻量级 (~40-60 MB) JRE 的人制作标准 Java SE JRE 的方法。如果您知道如何使用终端,那么只需不到 2 分钟的时间就可以为 JDK 9 及更高版本创建一个通用的 JRE。
在这里试一试 - EasyJRE: https ://justinmahar.github.io/easyjre/
原文由 Justin 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.4k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
受文章 使用 jlink 为非模块化应用程序构建 Java 运行时的 启发,我使用了以下命令:
java --list-modules
获取所有可用 openjdk 模块的列表jlink --no-header-files --no-man-pages --compress=2 --add-modules <module-list from step 1> --output java-runtime
创建一个紧凑的jre。对于 OpendJDK 12,这是我最终得到的命令:
jlink --no-header-files --no-man-pages --compress=2 --add-modules java.base,java.compiler,java.datatransfer,java.desktop,java.instrument,java.logging,java.management,java.management.rmi,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.se,java.security.jgss,java.security.sasl,java.smartcardio,java.sql,java.sql.rowset,java.transaction.xa,java.xml,java.xml.crypto,jdk.accessibility,jdk.aot,jdk.attach,jdk.charsets,jdk.compiler,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.crypto.mscapi,jdk.dynalink,jdk.editpad,jdk.hotspot.agent,jdk.httpserver,jdk.internal.ed,jdk.internal.jvmstat,jdk.internal.le,jdk.internal.opt,jdk.internal.vm.ci,jdk.internal.vm.compiler,jdk.internal.vm.compiler.management,jdk.jartool,jdk.javadoc,jdk.jcmd,jdk.jconsole,jdk.jdeps,jdk.jdi,jdk.jdwp.agent,jdk.jfr,jdk.jlink,jdk.jshell,jdk.jsobject,jdk.jstatd,jdk.localedata,jdk.management,jdk.management.agent,jdk.management.jfr,jdk.naming.dns,jdk.naming.rmi,jdk.net,jdk.pack,jdk.rmic,jdk.scripting.nashorn,jdk.scripting.nashorn.shell,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsupported,jdk.unsupported.desktop,jdk.xml.dom,jdk.zipfs --output java-runtime