在不使用第三方供应商的情况下从 Oracle 下载 OpenJDK Java 11.0.11+9

Download OpenJDK Java 11.0.11+9 from Oracle without using a third-party vendor

简短说明:

我想要获得 JavaJDK 的 GPL2-CPE 许可版本,我将其称为“OpenJDK”,因为我更喜欢该许可而不是 Oracle 的限制性 OTN 许可证。问题是我想要 11.0.11+9 Windows ZIP 版本,this Oracle page and Eclipse Adoptium / AdoptOpenJDK page 都列为最新版本, 没有 被采用。我想要 Oracle 版本“直接来自马口”,可以这么说,以避免我可以快速从 Oracle 下载的文档与我安装的 JDK 之间的任何差异。我可以轻松地从 jdk.java.net 获得 OpenJDK 16.0.1 ZIP,但不能从 OpenJDK 11.0.11+9 获得。在尝试获取 OpenJDK 11.0.11+9 的过程中,我提出了各种其他问题,我希望得到解答。

详细说明

我试过的:

我:下面的循环:

  1. 我从 this Oracle page, 开始,其中包含 OTN 许可的 JDK,并看到了 OpenJDK 的广告:“寻找免费 JDK 的最终用户和开发人员版本:Oracle OpenJDK 在 GPL 许可下提供与 Oracle JDK 相同的特性和性能。
  2. 在 jdk.java.net 上,我看到“准备使用”部分有 JDK 16,这是我不想要的。我单击了我看到的 JDK 11 的唯一条目,它位于“Reference Implementations”下。我下载了那个文件,ZIP 文件的名称为“OpenJDK-11+28_windows-x64_bin.zip”,这听起来像是 JDK 11 的旧版本。所以参考实施页面,我读到,“GPL 下的生产就绪二进制文件可从 Oracle 获得;并且将出现在最流行的 Linux 发行版中。”
  3. 我被引导至 this page,其中指出,“JDK 11 抢先体验计划已结束。请访问 Java SE 下载以获取生产就绪版本。”
  4. 我访问了 link 在“Java SE 下载”下编辑的页面,然后返回到第 1 步中的页面。

II:在写这个问题时,建议的问题是 。该页面上的答案有几个图表可以帮助解释很多事情,但这些图表再次将我重定向到 jdk.java.net 或第三方供应商。

III: This page 有旧版本的 OpenJDK 11.

IV:在 this page 上,文本“一般可用性”不是 link。

对我所做的事情提出的问题:

  1. 如何直接从 Oracle 获取 Oracle OpenJDK 11.0.11+9?
  2. 在 Adoptium 上可用的版本与 Oracle 的 Oracle OpenJDK 11.0.11+9 有任何 差异吗?
  3. 如果无法获得我正在寻找的东西,那么 Adoptium 从哪里获得他们提供的东西?他们只是从源代码构建他们的构建吗?
  4. 如果我要找的东西不可能,为什么不可能?是因为 Oracle 的许可决定吗?我正在寻找的更新算作付费支持补丁吗?如果是这样,我认为 Oracle 没有将这些更新发布到 OpenJDK?

免责声明:

如果这是一个 stupid/repeated 问题,我深表歉意。我讨厌成为害虫,但我想不通。

tl;博士

Oracle OpenJDK, not to be confused with Oracle JDK. For Java 11 specifically.

但是 Java 的实现同样出色,由:

提供
  • Azul Platform Core & Azul Platform Prime,由 Azul Systems(原 Zulu)
  • Red Hat (IBM) 的 OpenJDK 的 Red Hat build
  • 亚马逊的 Coretto
  • Microsoft 的 OpenJDKMicrosoft Build
  • Eclipse 基金会的 Adoptium(原 AdoptOpenJDK
  • Pivotal Software, Inc. 的 OpenJDK 的 Pivotal Distribution
  • SapMachine 由 SAP
  • BellSoft
  • Liberica
  • 在 FreeBSD
  • 上通过 Ports & Packages 获取和构建
  • 通过 aptget 等在 Linux
  • 上获取和构建

详情

If this is a stupid/repeated question, I sincerely apologize. I hate being a pest, but I can't figure this out.

虽然不傻,是的,这是一个重复的问题。你说了一些具体的点,所以我会具体回应。但我会尽量简短。有关更多详细信息,请在 Stack Overflow 中搜索许多现有的此类问题。

the GPL2-CPE licensed version of the JavaJDK, which I will call "OpenJDK"

您误解了 Java 生态系统运作的本质。

OpenJDK is not a product. OpenJDK is an open-source project based on an industry-wide collaboration. The principal goal of the project is producing a codebase implementing the Java specifications, along with JDK Enhancement Proposals (JEPs) and Java Specification Requests (JSRs). You can view and obtain the source code via Mercurial or via GitHub.com.

OpenJDK 由 Oracle Corporation 所有,但与多家合作公司合作运营,包括 IBM/Red Hat、Apple、SAP 和其他提供人才和代码的公司。

OpenJDK 项目不会 生成最终发布版本的二进制文件。相反,一些供应商发布二进制 and/or 官方版本的安装程序。这些供应商的大部分产品都很大程度上或完全基于 OpenJDK 源代码。 Oracle 和其他组织提供测试套件来验证此类产品是否符合 Java 规范。请注意,要使用 Java™ 受法律保护的商标,公司必须与 Oracle 达成协议。相比之下,OpenJDK 术语可由任何供应商自由使用,因此您会在许多产品中看到该术语。

I want the Oracle version "straight from the horse's mouth,"

特别是从 Oracle 获得 Java 实施没有什么特别之处。

Oracle 曾多次以书面和口头形式正式公开表示他们自己的 Oracle 品牌 Oracle JDK/Oracle Java SE 产品(在生产中使用需要付费)将保持与 OpenJDK 项目相同的功能。 Oracle 甚至向 OpenJDK 项目捐赠了一些相关的以前的商业产品,例如 Flight RecorderMission Control .

Oracle 保留向其付费客户紧急分发修复程序的权利。但在其他方面,Oracle 贡献并依赖于 OpenJDK 代码库。

… to avoid any discrepancies between the documentation I was quickly able to download from Oracle

所有生产实施 Java 规范的产品的供应商都依赖于相同的文档。

An answer on that page had several diagrams that were helpful in explaining a lot of things

谢谢,是我的杰作。

but the diagrams again redirects me to either jdk.java.net or third-party vendors

➥ Oracle 生产 三种 产品实现 Java 规范:

  • Oracle JDK — 他们的商业支持二进制文件。在生产中使用所需的费用(请参阅 Oracle 的许可条款)。
  • Oracle OpenJDK — Oracle 构建的 OpenJDK 代码库,GPL2-CPE 许可,免费。引用 Oracle:“在 GPL 许可下提供与 Oracle JDK 相同的特性和性能”。
  • GraalVM — 一种特殊产品,提供提前本机编译等功能。

这三个 Oracle 产品在 my flowchart diagram 中显示为前三个绿色气泡。对于 GraalVM,一个绿色气泡是较高组“特殊需求”产品中的第一个。另外两个绿色气泡显示在蓝色桶的顶部。

您问的是:

  1. How can I get Oracle OpenJDK 11.0.11+9 directly from Oracle?

显然您希望 Oracle 的非商业不受支持的发行版从 OpenJDK 源代码构建,并在 GNU 通用 Public 许可证下发布,版本 2,具有类路径例外。如果是这样,请参阅 Oracle OpenJDK 的产品页面(不要与 Oracle JDK/Oracle Java SE.)

此页面 Java Platform, Standard Edition 11 Reference Implementations 提供了 Linux 和 Windows 的 Java 11 种实现的当前版本的链接。当前版本适用于 build 11+28。如果你真的想要旧的过时 11.0.11+9 版本,你将需要通过他们的档案进行探索。我建议坚持使用最新版本。

  1. Does the version available at Adoptium have any differences to Oracle OpenJDK 11.0.11+9 from Oracle?

没有。我上面明确引用了 Oracle 的说法,没有区别。 Oracle OpenJDK 直接从 OpenJDK 源代码构建。与 AdoptiumEclipse Foundation 的发布一样,以前称为 AdoptOpenJDK。并且,与其他一些供应商的版本一样。

Oracle 一直在努力消除您和其他人的错误观念,即以某种方式存在来自 Oracle 的“真实”Java 和来自其他人的“假”Java。您可以从多家供应商中的任何一家获得的几乎所有实现都在很大程度上或完全基于 OpenJDK 代码库构建。有两个例外:

  • 与 Oracle 一样,一些供应商(如 Azul Systems、Red Hat 和其他供应商)保留向其付费客户分发紧急修复程序的权利,其速度比通过 OpenJDK 流程更快。
  • 一些产品是专门的,以满足 OpenJDK 设计目标未解决的小众需求。例如,GraalVM 中的 AOT 编译,以及在 Azul Systems 的 Azul Platform Prime(以前称为 Zing)中通过异常垃圾收集处理大量内存。
  1. If getting what I'm looking for is not possible, then where does Adoptium get what they provide? Do they just build their builds from source?

Adoptium 提供从 OpenJDK.

的源代码构建的二进制文件和安装程序
Project Source code Binaries
OpenJDK
Adoptium

Adoptium 还构建了一套测试来验证其构建是否符合 Java 规范。 Adoptium 已经将他们的测试和工具制作成开源项目。

一些供应商根据 Adoptium 的工作改编自己的发行版。事实上,Adoptium 项目本身就是几个看似相互竞争的供应商(以及其他人)的协作成果。

  1. If what I'm looking for is not possible, why is it not possible? Is it due to Oracle's licensing decisions? Does the update I'm looking for count as a paid support patch? If so, I thought Oracle didn't release those updates to OpenJDK?

如果我没理解错的话,你想要的 可能的,在 Oracle OpenJDK 开源 GPL2 中-CPE 产品,不要与 Oracle JDK 商业产品混淆。看到你的“1”。在此答案中高出几段。

我强烈建议您阅读 Java Is Still Free,一份由 Java 社区的支柱撰写的白皮书。