既然没有更多的JRE 11可供下载,我如何让Java 11运行时环境工作?

既然没有更多的JRE 11可供下载,我如何让Java 11运行时环境工作?,java,java-11,Java,Java 11,与过去的Java版本不同,Java11没有可供下载的JRE。在运行一些基于java的软件时,我遇到了一个错误“没有java运行时环境”。为了解决这个问题,我必须安装Java8JRE 如果没有更多的JRE 11可供下载,如何让我的电脑运行Java 11 JRE 我正在使用Windows 10。现在,似乎没有免费+简单的Oracle支持的Java 11 JRE(仅限)选项。你的选择是: 从OpenJDK站点下载并使用OpenJDK Java 11 JDK 从Oracle站点下载并使用Oracle

与过去的Java版本不同,Java11没有可供下载的JRE。在运行一些基于java的软件时,我遇到了一个错误“没有java运行时环境”。为了解决这个问题,我必须安装Java8JRE

如果没有更多的JRE 11可供下载,如何让我的电脑运行Java 11 JRE


我正在使用Windows 10。

现在,似乎没有免费+简单的Oracle支持的Java 11 JRE(仅限)选项。你的选择是:

  • 从OpenJDK站点下载并使用OpenJDK Java 11 JDK

  • 从Oracle站点下载并使用Oracle Java 11 JDK。。。请确保您完全理解目前适用于Oracle Java 11+版本的“商业用途”限制

  • 尝试从OpenJDK源代码中推出自己的Windows JRE for Windows;看

  • 考虑使用新工具为应用程序创建自定义映像(基本上是精简的JRE)。这似乎是Oracle希望第三方应用程序开发人员使用的选项

  • 与Oracle销售人员讨论Java支持合同,并具体询问如何获得JRE构建。(我不知道答案是什么。如果有人尝试了这个,并且得到了积极的回应,请评论!)

  • 使用第三方Java JRE发行版。(供应商名单会随着时间的推移而变化,但截至目前,其中包括采用OpenJDK、亚马逊、Azul、BellSoft、IBM、jClarity、Red Hat和SAP。其中一些供应商提供JRE。)

    注意:由于(几乎)所有Java供应商的产品都基于用于Oracle Java的相同标准OpenJDK代码库,因此没有理由担心第三方JRE的稳定性

  • (或者从Windows切换到Linux。我可以在最新版本的Ubuntu、Fedora等上从发行版软件包管理器安装OpenJDK Java 11 JRE软件包)


    对于那些认为Oracle Java 11和OpenJDK Java 11相同的人,请从Oracle下载站点阅读以下内容:

    Oracle JDK 11许可证中的重要更改

    使用JDK 11,Oracle更新了我们提供Oracle JDK的许可条款。新版本与以前提供JDK版本的许可证有很大不同。在下载和使用本产品之前,请仔细阅读新术语

    Oracle也在jdk.java.net/11上提供此软件

    请注意,Oracle表示Oracle Java和OpenJDK Java的许可证是不同的。(尽管两者基本上是从同一个源代码库构建的。)忽略这一点会有危险

    您可以使用“采用OpenJDK”项目网站下载最新的jre和JDK

    在此处查找最新链接>

    编辑: 问题已解决

    我使用了他们的夜间构建来解决JDK包中缺少JRE的问题

    正确且重要

    Oracle不再打算让最终用户安装JRE或JDK。在某种程度上,浏览器和应用程序交付都被淘汰,最终用户不需要JRE。基于Java的应用程序需要捆绑自己的Java实现。有意识地安装JDK的人只有开发人员和服务器端系统管理员

    重要:

    • 清楚地了解项目的性质,如
    • 阅读甲骨文2018-03年的白皮书
    • 阅读由Java社区主要成员撰写的白皮书
    了解:

    • jlink()
    • jpackage()
    桌面应用程序现在需要捆绑自己的Java运行时。上面列出的这些工具可以创建一个非常小的运行时自定义,以适合您的特定应用程序

    下面是一个流程图,可以帮助您在提供Java11实现的各个供应商中查找和决定


    以及一个映射可能动机或考虑因素的表,这些动机或考虑因素导致推荐的Java供应商

    兼容性问题 在评论中,提出了一个问题,即关注不同供应商发布的版本之间的兼容性问题

    首先,要知道OpenJDK项目包括一个庞大的测试套件,称为OpenJDK社区技术兼容性工具包(TCK)。供应商可以自行声明其版本是否通过了这些测试。这些说法没有得到证实,依赖于荣誉制度。在上面的图表中,我在我知道的两个自行声明的供应商上打上了“TCK”复选标记:Oracle的Oracle JDK和Azul Systems的Zulu

    上面图表中蓝桶区域中列出的所有产品几乎都直接构建在OpenJDK源代码上。因此,一般来说,您应该看到几乎相同的兼容性

    您可能会考虑两个方面:技术差异和更新/补丁的时间表

    至于技术差异,使用OpenJDK项目的供应商可以附带或。它们在性能上会有所不同(启动速度更快/更慢与总体速度、内存更多/更少),但它们在遵守Java规范方面的行为应该是相同的。它们可能会有所不同,当然,它们中的任何一个都可能存在另一个所缺乏的缺陷(很可能很快就会修复)。就我个人而言,我不会对此感到担忧,但我提到它是为了完整性

    另一个技术差异是Azul Systems使用的Zing和Oracle使用的GraalVM使用的JVM不同。这两种产品中的任何一种可能在某种程度上彼此不同,或者与其他产品不同,因为它们有意使用不同类型的JVM实现来提供特殊功能。但考虑到这一政策的彻底性,它们不应该互不相容。如果是的话,您可以期望任何兼容性问题都能迅速得到解决。如果我需要这些产品的特殊功能,我会使用