在比利时安特卫普举行的Devoxx BE大会上,亚马逊发布了Corretto预览版,这是Java的一个参考实现,一个“免费、跨平台、生产就绪”的OpenJDK版本。在开幕主题演讲中,Java语言创始人James Gosling宣布Corretto可以作为所有Java SE发行版的直接替代品,但使用了OpenJDK中没有的功能的场景除外(例如Java Flight Recorder)或当前正在非HotSpot JVM上运行的工作负载。亚马逊计划在2019年将Corretto作为亚马逊Linux 2的默认OpenJDK。

Corretto 8的预览版本对应于Java 8,二进制安装文件目前可在Amazon Linux、macOS和Windows上安装。GA版本计划于2019年第一季度推出,并将增加对Ubuntu和Red Hat Enterprise Linux的支持。亚马逊将至少在2023年6月之前为Corretto 8提供免费的安全更新。对应于OpenJDK 11的Corretto 11将于2019年上半年推出。亚马逊至少在2024年8月之前为Corretto 11提供每季度更新。

AWS首席开源技术专家Arun Gupta在AWS开源博客上发布公告称,Java是AWS客户使用的最流行的语言之一,亚马逊致力于支持Java并保持Java免费。

我们正在向客户提供免费、长期支持的Java,并提供季度更新,包括错误修复和安全补丁。AWS还将在季度计划之外为客户提供紧急修复。

在Oracle最近宣布改变Java产品支持策略之后——主要是移除Java的免费长期支持(LTS)——很多亚马逊客户开始担心他们必须为LTS版本的Java支付费用才能运行他们的工作负载。之前,亚马逊确认亚马逊Linux中的LTS版本Java将继续获得支持,现在开始跟进Corretto的预览版。

在Devoxx BE的分组讨论会上,Gupta与AWS JDK团队经理Yishai Galatzer进行了交谈。两人谈到,Corretto 8包括来自较新OpenJDK版本的反向移植,以及来自社区和亚马逊新开发的增强功能。发布过程包括对数千种Amazon生产服务进行测试,因此修复程序可以在发现问题后的几天内发布。亚马逊还在每个Corretto版本上运行Java技术兼容性工具包(TCK),以确保与Java SE平台的兼容性。

Corretto中包含的额外补丁和改进是在当前的OpenJDK上游代码库之外,这些改进让亚马逊能够“解决真实的大规模服务问题,满足高性能和可扩展性需求”。这些补丁包括:[C8-1]当长时间运行的本机调用导致G1 GC挂起,防止过早抛出OutOfMemoryException;[C8-2]从OpenJDK 10反向移植,修复了JDK-8177809:“File.lastModified()丢失毫秒精度(总是以000结尾)”;[C8-17]在使用gcc7时,提高JVM源代码的可移植性。

亚马逊最近已经开始参与贡献OpenJDK,Gupta的博文称“我们期待与OpenJDK社区密切合作,共同开发OpenJDK 8和11的未来增强功能”。他说,“我们在下游为OpenJDK提供修复,根据我们自己的经验和需求添加增强功能,然后构建成Corretto”。不过,这确实增加了上游OpenJDK代码库和Corretto之间存在微妙差异的可能性。

如果针对这些补丁的努力被延迟或不适合OpenJDK项目,我们会将它们提供给我们的客户,只要能够为客户带来价值。如果在OpenJDK中使用了不同的方式解决问题,我们将在安全的情况下采用他们的解决方案。

在安装好Corretto二进制文件后,用它来运行Java应用程序,“现有的命令行选项、调整参数、监控和其他内容将继续像以前一样保持不变”。但前提是需要通过HotSpot JVM执行应用程序,并且如果当前正在使用其他的JVM,例如Eclipse OpenJ9,那么一些命令行选项可能不兼容,需要做出修改。Devoxx的参会者问在未来是否支持其他JVM,Galatzer表示,目前只有HotSpot将与Corretto捆绑在一起。

Corretto的源代码可以通过GitHub获得,InfoQ与Gupta取得了联系,问他该项目是否接受来自社区中的提取请求和补丁。

是的。有关Corretto的拉取请求可以通过https://github.com/corretto提交。任何与OpenJDK相关的问题都需要根据OpenJDK贡献者协议提交到相应OpenJDK代码库中,让整个社区都可以从修复中受益。在向OpenJDK提交代码后,我们建议再与Corretto团队就提交的问题展开讨论,并确定创建新的Corretto PR是否有助于加速修复。

他还指出在Corretto和OpenJDK上提交bug的公开程序:

OpenJDK相关的bug应该提交到OpenJDK代码库中,然后在Corretto上提供该bug的链接。这是为了让整个社区都知道与这个bug相关的代码或想法。如果存在只与Corretto相关的构建脚本、文档和工件相关的问题,那么应该将问题提交到https://github.com/corretto。

HackerNews和Twitter上针对发布公告的讨论,例如,Java Champion及Joda-Time的作者Stephen Colebourne比较关注Corretto版本的发布周期。Gupta证实,目前只支持与OpenJDK的LTS版本相对应的Corretto版本:

目前,我们计划遵循Oracle的LTS发布周期。因此,除了Corretto 8和Corretto 11之外,下一个LTS版本将是Corretto 17。

OpenJDK的其他版本也可用,包括Oracle的Java、Red Hat的OpenJDK构建版本,以及来自AdoptOpenJDK组织的社区构建版本。AdoptOpenJDK致力于促进OpenJDK的采用,一股来自民间社区的力量,由一系列商业组织、Java用户组和Java开发者组成。InfoQ联系到了Java Champion、LJC和OpenJDK Build Farm项目的负责人Martijn Verburg,询问了他对发布公告的看法:

亚马逊宣布Corretto是对OpenJDK作为生产环境中可行的运行时的额外认可!我认为很多保守组织会看到这一点,他们会说“如果亚马逊、IBM、Red Hat等正在使用OpenJDK,那么我也就没有什么疑虑了!”

InfoQ还问到亚马逊是否与AdoptOpenJDK合作,Verburg回答说:

“亚马逊曾经与AdoptOpenJDK合作,使用我们的一些脚本和专业知识解决他们的Windows和Mac安装程序问题,并改进他们的测试。AdoptOpenJDK的精神一直是关于Open Infrastructure As Code(请参阅https://adoptopenjdk.net/about.html的第3个要点),我们欢迎亚马逊使用这些资源,我们期待继续与他们合作。”

AdoptOpenJDK项目的一级赞助商包括Azul Systems、IBM、LJC、微软Azure、Ocado和Packet,InfoQ还问到了亚马逊对社区的参与情况以及Java生态系统发生碎片化的可能性:

AdoptOpenJDK还在与亚马逊和其他OpenJDK提供商讨论进一步的举措,以缓解对碎片化的担忧。例如,AdoptOpenJDK有一个开放的测试套件和测试管道(40-60,000个测试),可用于测试任意的二进制文件。这为所有的OpenJDK提供商提供了一个他们可以达成的公共质量标准基础。

为了减少对碎片化的一些潜在担忧,AdoptOpenJDK将强烈鼓励亚马逊和其他OpenJDK提供商将他们的补丁提交给OpenJDK。亚马逊在他们的常见问题解答中也提到了这种担忧(https://aws.amazon.com/corretto/faqs/)

Verburg还指出Java生态系统在商业和业余爱好者中都有广泛的应用,并且认为有必要提供透明的构建过程。

AdoptOpenJDK仍然是供应商中立的,社区可以生成经过严格测试的OpenJDK构建版本,最终用户可以清楚地看到他们所使用的每个二进制文件的构建过程。

他继续说道,亚马逊目前以Corretto为目标的平台之外还存在很多其他的硬件架构、操作系统和Java版本:

AdoptOpenJDK将继续支持整个生态系统,提供广泛的平台支持(ARM32/64、Win 32、AIX、Linux s390、PPC以及Win、Mac OS X和Linux x86)和版本变体(Eclipse OpenJ9 VM、OpenJDK 8,9,10,11、Project Amber等)。

最后,Verburg鼓励社区通过为AdoptOpenJDK这样的项目作出贡献来共同参与共建Java的未来。

我们已经有几百万的下载量,社区成员,如IBM、Red Hat、Azul、Ocado、SAP、LJC(以及亚马逊)每天都参与其中。在人们看来,这个项目是一个对软件行业具有长久意义的重要公共资源。

现在让我们回到Gosling在Devoxx上介绍Corretto这个话题上,Gosling向Java的咖啡主题历史致敬——Caffè corttto是一种意大利饮料,含有少量白酒的浓缩咖啡——并向Devoxx与会者表达了他的激动心情:

亚马逊在Java方面有着悠久而深厚的历史。我很高兴看到我们内部的任务关键型Java团队的努力正在走向世界。

用户可以在aws.amazon.com/corretto上下载Corretto 8,同时还提供了文档,其中包含一个入门指南,指南中包含了所有受支持平台的完整说明。用户也可以在stackoverflow或Twitter(@awsopen)上提出相关问题。

查看英文原文:Amazon Release Corretto: A Multiplatform Java OpenJDK Build with No-Cost Support

Amazon Corretto技术细节探秘相关推荐

  1. AWS 推出长期支持的 OpenJDK 免费分发版本 —— Amazon Corretto

    简评:听说 Oracle JDK 要收费了,Oracle 要限制 Java 的商业或生产用途,针对这个问题,AWS 将会推出 Amazon Corretto. Java 是 AWS 用户使用的最流行的 ...

  2. 亚马逊抢甲骨文的 Java 饭碗,推出 Corretto

    Corretto 14 日亚马逊发文宣布 Amazon Corretto 的预览版,这是一个免费的.跨平台生产就绪的 OpenJDK 发行版. 这是亚马逊继前不久重申对 Amazon Linux 中的 ...

  3. 亚马逊 OpenJDK 发行版 Corretto GA

    亚马逊 OpenJDK 发行版 Corretto 现在已经 GA. Amazon Corretto 是亚马逊于去年 11 月份推出的 OpenJDK 8 的发行版,它支持多种平台,可以在云端与本地计算 ...

  4. 亚马逊Corretto 8

    更新! 我已将在Docker中运行Corretto的选项更新为使用Docker Hub中可用的amazoncorretto Docker映像. Amazon Corretto是OpenJDK的生产就绪 ...

  5. amazon白皮书学习 I

    从目录学习 Introduction -1 What is Cloud Computing?..1 Six Advantages of Cloud Computing -2 Types of Clou ...

  6. 程序员们请收好这本JVM日历:Java 2018大事回顾

    专注于Java领域优质技术号,欢迎关注 来源:ImportNew - 唐尤华 一年过去了,是时候发布新一版 Java Advent 日历.这篇是发布的第六个日历,能够参与这一季的日历让我感到非常荣幸. ...

  7. spring版本 jdk8_从JDK8升级到JDK11,看这篇就足够了

    原文地址:https://blog.codefx.org/java/java-11-migration-guide/. 在原文的基础上,增加了一些我遇到的具体的坑还有在特定场景下的解决方案,供大家参考 ...

  8. 为什么Spring仍然会是云原生时代最佳平台之一?

    简介: 基于Java语言的Spring生态,还能否适应新的开发方式,比如Cloud Native.Serverless.Faas等,它还会是云原生时代的最佳平台的选择吗?本文将从5个角度来为你分析一下 ...

  9. Oracle 屠刀下的 Java 软件公司怎么活?

    2019 年 1 月之后,Oracle 将对 Java 的使用开始收费.Java SE 的收费标准从每用户 40 到 300 美元,或者每处理器 5000 到 15000 美元不等.另外对企业而言非常 ...

最新文章

  1. LOJ2586 APIO2018 选圆圈
  2. dropout是什么?为什么dropout管用?测试集上是否需要使用dropout?说明为什么神经网络中的dropout可以作为正则化?
  3. android socket创建失败
  4. Mastering Caching in Asp.net
  5. bs模型Nd怎么用计算机算,BS模式的下试卷自动生成系统的设计与实现
  6. Ionic 用于构建惊人的移动应用程序的顶级开源框架
  7. PHP之父评价Facebook的HipHop项目:别当作银弹
  8. pythonhtml生成word_python如何实现word批量转HTML
  9. baidu__git_android
  10. Navicat连接Oracle
  11. 抓取微信小程序数据加密内容
  12. div+css视频教程大全免费下载更有html5教程
  13. 又一黑科技曝光:手机“隔空充电”时代要来了?
  14. 移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡
  15. 在线CRM客户管理系统有好用的吗?这5款千万别错过!
  16. 【Oracle SQL数据库-教学2】--- Oracle数据库基础
  17. MAC下用F9-F12模拟PageUP/PageDown/HOME/END
  18. ApacheCamel入门
  19. Tomcat 解决“At least one JAR was scanned for TLDs yet contained no TLDs”问题
  20. 2020戴森设计大奖两项全球冠军揭晓

热门文章

  1. vector在java中用什么_在java中使用Vector是否安全?
  2. 在我方某前沿防守地域 matlab,蒙特卡洛方法模拟小例子
  3. 同济大学和东南大学计算机哪个好,东南大学和同济大学哪个好?选择哪个以后发展比较好?...
  4. mysql查询哪天,Mysql日期查询的详细介绍
  5. SpringMVC容器初始化篇----ContextLoaderListener
  6. python内置函数sorted(x)的作用是_Python内置filter与sorted函数
  7. java 函数内部类_java 内部类详解 转
  8. 漫步者煲耳机软件_它是苹果AirPods的“真香替身”——漫步者lolliPods开箱体验...
  9. oracle sql判断值为空,Oracle,sqlserver的空值(null)判断
  10. 硬盘驱动器是如何工作的?