Amazon Corretto和OpenJDK(以及Oracle 的OpenJDK——但已经有一张关于这个的票)之间有什么区别?Corretto 是 OpenJDK 版本 8 的实现。两者都是免费的,并且似乎可以在大多数系统(Linux、Mac OS 和 Windows)上运行。到目前为止,Corretto 仅处于预览阶段,但很快就会改变。Corretto 的文档并没有过多地说明差异。性能、垃圾收集等方面是否存在差异?为什么我更喜欢其中之一?您会在 AWS 之外使用 Corretto 吗?
4 回答
来自亚马逊的描述:
“Corretto 中的补丁和改进使 Amazon 能够解决大规模、现实世界的服务问题,满足严格的性能和可扩展性需求。我们通过免费的长期支持向客户提供这些服务,并提供包括错误在内的季度更新修复和安全补丁。AWS 还将在季度计划之外向客户提供紧急修复。”
因此,Corretto 进行了特定于性能的调整(例如,针对服务器或云应用程序),以及用户可以利用的其他错误修复,这些修复还不一定在 OpenJDK 中。此外,亚马逊也在为其构建提供适当的 LTS 支持,正如其他商业公司开始为 JDK 做的那样(我想到了 Oracle 和 Azul 以及其他公司)。
我可以告诉你,我们发现了一些细微的差别。我们尚未确定差异的根本原因,但我们知道使用 Corretto 生成的 Jasper 报告在某些偏移量上存在细微差异,例如 corretto 中的leadingOffset="-2.9667969" 与 Oracle JVM 中的 "-2.737793"。没有视觉差异,但导致金大师测试失败。此外,不包括一些非常旧的已弃用工具,例如文本到 tiff 渲染。除此之外,我们已经将许多项目毫无问题地转换为 Corretto。
除了任何性能优势之外,使用 Corretto 的一个重要原因是其对其版本的长期支持,包括安全漏洞。
OpenJDK 与其他几家供应商(如 Amazon Corretto)之间的重要区别之一是它们的发布和支持周期。
OpenJDK 的发布周期为 6 个月,并且仅支持此次发布的每个版本。下一个版本后,上一个版本将停止接收补丁。这意味着要保持最新状态,您必须每 6 个月升级一次。
另一方面,Corretto 为其 JDK 构建提供 LTS(长期支持)。
Amazon Corretto 是开放 Java 开发工具包 (OpenJDK) 的免费、多平台、生产就绪发行版,提供长期支持 (LTS)。LTS 包括亚马逊承诺至少在相关发布版本的指定日期之前免费提供性能增强和安全更新(例如 Corretto 8 的 2026 年 5 月)。更新计划每季度发布一次。 亚马逊还计划在常规季度周期之外应用紧急修复(包括安全性),当它们可用并准备好使用时。
总而言之,您有 3 个选项:
- 免费使用 OpenJDK,但每 6 个月升级一次以获取更新
- 使用 Oracle 或其他供应商提供的付费 JDK
- 免费使用 Corretto,并获得几年的免费更新
如您所见,如果您想保持安全和最新,不想花钱,不想不断升级到新版本,Corretto 是一个不错的选择。
以下是 Corretto 当前的生命周期结束日期:
- 版本 8 LTS 2026 年 6 月
- 版本 11 LTS 2027 年 9 月
- 版本 17 LTS 2029 年 10 月
非 LTS 版本也可用,但支持时间较短。
那里有各种各样的 JDK 供应商,因此对于免费和更新的 JDK 可能还有其他替代方案,但请务必仔细阅读供应商网站以了解他们的支持和补丁政策。我个人认为 Corretto 是一个不错的选择,你可以放心的东西会及时修补。
应用的补丁列在以下页面中:
- https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/patches.html
- https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/change-log.html
我不会复制,因为列表会随着时间的推移而增长,但重点似乎是错误修复和性能修复补丁和反向移植。