Java 11没有像过去的Java版本一样提供可下载的JRE。当运行某些基于Java的软件时,我遇到了“没有Java运行时环境”的错误。为解决此问题,我需要安装Java 8 JRE。
既然没有可以下载的JRE 11,那么如何使我的电脑运行Java 11 JRE呢?
我正在使用Windows 10操作系统。
Java 11没有像过去的Java版本一样提供可下载的JRE。当运行某些基于Java的软件时,我遇到了“没有Java运行时环境”的错误。为解决此问题,我需要安装Java 8 JRE。
既然没有可以下载的JRE 11,那么如何使我的电脑运行Java 11 JRE呢?
我正在使用Windows 10操作系统。
Stephen C的回答是正确且重要的。
Oracle不再打算让最终用户安装JRE或JDK。浏览器中的Java Applets和应用程序交付中的Java Web Start正在逐步淘汰,使最终用户不需要JRE。基于Java的应用程序预计将捆绑自己的Java实现。唯一有意安装JDK的人将是开发人员和服务器端系统管理员。
重要提示:
了解:
现在预期桌面应用程序捆绑自己的Java运行时。上述工具可以创建非常小的运行时,以适合您特定的应用程序。
这是一个流程图,可以帮助您在提供Java 11实现的各个供应商中进行选择和决策。
并且有一张表格,列出了可能导致建议使用Java供应商的动机或考虑因素。
在评论中,有人提出了一个问题,担心不同厂商发布的版本之间存在兼容性问题。
首先,要知道OpenJDK项目包括一个称为OpenJDK社区技术兼容性套件(TCK)的大量测试套件。厂商可以自行声明他们的版本是否通过了这些测试。这些声明没有得到验证,依赖于诚信系统。在我的图表上,我已经在几个我知道已经自我声明的厂商上打了“TCK”的勾:Oracle JDK由Oracle和Zulu由Azul Systems。
我图表上蓝色桶区域中列出的所有产品都几乎直接基于OpenJDK源代码构建。所以一般来说,你应该看到几乎完全相同的兼容性。
您可能需要考虑两个方面的问题:技术差异和更新/补丁的时间表。
至于技术差异,使用OpenJDK项目的厂商可以使用HotSpot引擎或OpenJ9引擎进行发货。它们的性能(启动速度快/慢与整体速度、更多/更少的内存)会有所不同,但它们遵守Java规范的行为应该是相同的。它们可能会有所不同,当然,其中任何一个都可能出现另一个缺乏的缺陷(很快就会修复)。个人而言,我不会担心这个问题,但我为了完整性而提到它。
另一个技术差异是由Azul Systems的Zing和Oracle的GraalVM使用的不同类型的JVM。这两者中的任何一种可能会以某种方式与彼此或其他产品有所不同,因为它们有意采用不同类型的JVM实现,以提供特殊功能。但考虑到Java规范的严谨性,它们不应该不兼容。如果它们不兼容,您可以期待任何兼容性问题得到快速解决。如果我需要这些产品中的任何一种的特殊功能,我会充满信心地使用它们。目前,似乎没有免费且易用的Oracle支持的Java 11 JRE(仅)选项。以下是您的选择:
从OpenJDK网站下载并使用OpenJDK Java 11 JDK。
从Oracle网站下载并使用Oracle Java 11 JDK……并确保您完全理解现在适用于Oracle Java 11+版本的“商业用途”限制。
尝试从OpenJDK源代码为Windows创建自己的Windows JRE,请参见Create jre from OpenJDK Windows。(我不建议这样做。有更好的替代方案。)
研究使用新的jlink工具为您的应用程序创建定制映像(基本上是削减版JRE)。这似乎是Oracle希望第三方应用程序开发人员使用的选项。
与Oracle销售人员讨论Java支持合同,并特别询问如何获得JRE版本。 (我不知道答案将是什么。如果有人尝试过并得到积极回应,请在评论中说明!)
使用第三方Java JRE分发。
Java供应商列表会随着时间而变化,目前包括AdoptOpenJDK、Amazon、Azul、BellSoft、IBM、jClarity、Red Hat和SAP。另请参见:OpenJDK和Adoptium/AdoptOpenJDK之间的区别
其中一些供应商提供JRE发行版,请检查它们的下载站点。
由于(几乎)所有Java供应商都基于相同的标准OpenJDK代码库构建其产品,这与Oracle Java没有任何稳定性问题。有些供应商提供(付费的)支持。
(或者从Windows切换到Linux。我可以在最新版本的Ubuntu、Fedora等发行版的发行版包管理器中安装OpenJDK Java 11 JRE-only包)
对于那些认为Oracle Java 11和OpenJDK Java 11是一样的人,请阅读来自Oracle下载网站的以下内容:
Oracle JDK 11许可证的重要变更
随着JDK 11的推出,Oracle已经更新了我们提供Oracle JDK的许可条款。新的 Oracle Java SE的技术网络许可协议 与之前的JDK版本提供的许可证明显不同。请在下载和使用此产品之前仔细阅读新条款。
请注意 Oracle 表示 Oracle Java 和 OpenJDK Java 的许可证是不同的。即使两者基本上是从相同的源代码库构建而来,也不能忽视这一点!此软件亦可在 jdk.java.net/11 上以GPL许可证提供。
Zulu仍然维护JRE(11-16),并且一些供应商推荐使用它。您可以在他们的网站上下载:https://www.azul.com/downloads/zulu/