如何在JRE上运行java应用JDK13?
How to run java applications JDK13 on JRE?
我用 JDK 13 制作了一个 java 应用程序。我用 launch4j 创建了一个 exe 文件。但是没有人可以 运行 因为每个人都有 jre 1.8 版本而且它不会启动...我必须在安装中包含 java jdk 13 并设置 java_home那?
TL;DR - 如果您想分发 Java 13 应用程序,best 选项是使用 jlink
创建可执行文件。这避免了用户必须安装 any JDK 或 JRE 到 运行 您的代码。
显然,用户无法 运行 您的应用程序带有 Java 8 JRE 或 JDK。典型的 Java 13 应用程序将使用 Java 8 平台中不存在的功能。但即使有效,免费 Java 8 也将在 2021 年 4 月停产,届时:
它将停止获取安全更新,使您的客户使用它(理论上如果不实践)不安全。
您的客户将更难找到免费的 Java 8 个二进制文件。 (不过,向 Oracle 支付许可证是一种选择。)
但是Java13也是有问题的。那将在 2020 年 9 月结束生命!此外,JRE 发行版不再可用。
最后,带有嵌入式 JRE 的应用程序安装程序总是有些问题:
当有 JRE 的安全补丁时,软件供应商很容易忘记更新安装程序。
系统管理员很难将嵌入式 JRE 添加到自动更新的列表中。特别是如果他们允许最终用户自己安装应用程序。
最好的方法是执行以下操作:
- 使用
jlink
为您支持的所有平台的应用程序创建可分发文件
- 尽快更新到 Java 14
- 每当发布带有安全修复的 Java 补丁版本时,评估已修复的内容并(如果有保证)创建新的可分发版本供您的客户安装。
如果您不想使用 jlink
,另一种选择是在 Java LTS 版本上将您的代码开发到 运行。 (当前的 LTS 版本是 Java 11,下一个版本是 Java 17,计划于 2021 年 9 月发布。)
- 使用 LTS 版本将允许您将代码作为 JAR 文件发布。
- 嵌入式 JRE 不是个好主意;见上文。
我用 JDK 13 制作了一个 java 应用程序。我用 launch4j 创建了一个 exe 文件。但是没有人可以 运行 因为每个人都有 jre 1.8 版本而且它不会启动...我必须在安装中包含 java jdk 13 并设置 java_home那?
TL;DR - 如果您想分发 Java 13 应用程序,best 选项是使用 jlink
创建可执行文件。这避免了用户必须安装 any JDK 或 JRE 到 运行 您的代码。
显然,用户无法 运行 您的应用程序带有 Java 8 JRE 或 JDK。典型的 Java 13 应用程序将使用 Java 8 平台中不存在的功能。但即使有效,免费 Java 8 也将在 2021 年 4 月停产,届时:
它将停止获取安全更新,使您的客户使用它(理论上如果不实践)不安全。
您的客户将更难找到免费的 Java 8 个二进制文件。 (不过,向 Oracle 支付许可证是一种选择。)
但是Java13也是有问题的。那将在 2020 年 9 月结束生命!此外,JRE 发行版不再可用。
最后,带有嵌入式 JRE 的应用程序安装程序总是有些问题:
当有 JRE 的安全补丁时,软件供应商很容易忘记更新安装程序。
系统管理员很难将嵌入式 JRE 添加到自动更新的列表中。特别是如果他们允许最终用户自己安装应用程序。
最好的方法是执行以下操作:
- 使用
jlink
为您支持的所有平台的应用程序创建可分发文件 - 尽快更新到 Java 14
- 每当发布带有安全修复的 Java 补丁版本时,评估已修复的内容并(如果有保证)创建新的可分发版本供您的客户安装。
如果您不想使用 jlink
,另一种选择是在 Java LTS 版本上将您的代码开发到 运行。 (当前的 LTS 版本是 Java 11,下一个版本是 Java 17,计划于 2021 年 9 月发布。)
- 使用 LTS 版本将允许您将代码作为 JAR 文件发布。
- 嵌入式 JRE 不是个好主意;见上文。