写点什么

首次贡献代码 7 年后,微软正式发布 OpenJDK 预览版

Bruno

2021 年 4 月 07 日

首次贡献代码 7 年后,微软正式发布OpenJDK 预览版

整理 | 施尧


Microsoft Build of OpenJDK 预览版本发布

北京时间 4 月 7 日,微软发布了其构建的 OpenJDK 预览版,这是 OpenJDK 的长期支持发行版,并且是开源的,该发行版的推出引起业界热议,这是继微软宣布加入 OpenJDK 项目之后的一个大事件。

在微软的官方发布文件中,说明了预览版 OpenJDK 的权限和适用性。


今天,我们高兴地宣布 Microsoft Build of OpenJDK 迎来预览版。作为 OpenJDK 新的免费长期支持(LTS)发行版,这套开源版本将供任何用户免费部署在任意场景。此版本包括适用于 x64 服务器、MacOS、Linux 以及 Windows 桌面环境的 OpenJDK 11.0.10+9 二进制文件。我们还根据最新的 OpenJDK 16+36 发布了适用于 ARM 和 Windows 环境的 Java 16 的新 Early Access 二进制文件。


同时还提到,Java 是目前最重要的编程语言之一,无数开发人员使用 Java 构建企业级和娱乐类应用。在微软的云服务和工具中,使用 Java 的客户也在不断增长。因此,微软一直致力于努力扩大和加深面向客户及开发者的 Java 能力支持。之后微软回顾了预览版 OpenJDK 的开发过程,提到了很多关键成果。


过去 18 个月以来,我们总计贡献了 50 多个补丁,涵盖 MacOS 打包、内部版本与基础设施、GC 修复以及 Windows 增强等多个问题。我们的主要贡献之一为 JEP 388——Windows/AArch64 端口,能够在 Surface Pro X 等 Windows ARM 设备上运行 Java 代码。


这项工作,更是为 MacOS 在 Apple Silicon 自研芯片上实现灵活的可移植性带来希望。2020 年,我们针对新的平台发布了 OpenJDK 16 的 Early Access 版本。现在,我们很高兴继续通过基于 OpenJDK 11 for x64 平台的二进制文件(涵盖三大主流操作系统)继续推进这项工作,并与 Java 社区及我们的 Microsoft Azure 客户共享工作成果。


对于开发者来说,除了新闻本身之外,更关注的应该是使用流程,流畅性,透明度的等是否有所改变。对此,微软官方做了比较全面的说明。明确在今年下半年,Microsoft Build of OpenJDK 将成为跨 Azure 管理服务的 Java 11 默认发行版。


届时,客户无需执行任何维护任务,版本过渡将以应用程序部署的形式完成且全程顺畅、透明。而对于其他 Azure 服务,客户仍可自由选择自己喜爱的 JDK,包括 Microsoft Bild of OpenJDK。


关于此次预览版发布的 5 个典型问题

官方发布的结尾,微软整理了 5 个常见问题,包括 Java 11 与此次预览版发布的关系,微软对 Java 11 的支持性,微软发布其他 Java 版本的计划,微软是否支持 Java 8 以及 二进制文件的许可证相关问题(感兴趣的读者可以点击文末链接查阅)。


微软计划至少支持 Java 11 到 2024 年,Java 17 的 OpenJDK 二进制文件计划于今年底前推出。同时,微软还计划在提供 Java 8 作为目标运行时选项的 Azure-managed services 上支持 Eclipse Adoptium 的 Java 8 二进制文件。


微软与 Java 的爱恨情仇

微软与 Java 的爱恨情仇由来已久。早在 1996 年,为了消除 Java 诞生带来的威胁,微软研发了 J++,并称其符合 Java 规范,与 Java 具有一样的语法和关键字,但是没有实现 Java 的 RMI 和 JNI。后来,微软被 Sun 以“歧视使用 Java 软件,旨在维持其视窗操作系统的垄断地位,违反反垄断法”为由起诉,并败诉赔偿了两千万美元。


最近几年,微软转型云计算,拥抱开源。2014 年,微软首次向 OpenJDK 贡献代码,内容关于 Windows 上 TCP 回环快速路径机制方面的优化。2018 年 10 月,Oracle 计划将 OpenJDK 的源码库迁移至 GitHub。


后来的事情大家都知道了,GitHub 被微软收购,微软与开源的关系更进一步。

2019 年 11 月,微软正式宣布加入 OpenJDK 项目。Bruno Borges 发布了一封邮件,具体信息可以在 OpenJDK 邮件列表 中找到,微软正式签署《Oracle 贡献者协议》,并表示期待未来参与 Java 的未来。


在过去的一周中,微软正式签署了《甲骨文贡献者协议》,Oracle 对我们参与该项目表示了认可及欢迎。我代表微软 Java 工程团队,很高兴正式加入 OpenJDK 项目,并期待与你们的合作。过去,如果以“微软”和“Java”为关键字进行搜索,出现的信息很少,且其中大部分也与微软如今对 Java 的态度相反。


在这封邮件中,Bruno Borges 表示,微软及其子公司在许多方面都高度依赖 Java,并在微软 Azure 中向客户提供 Java 运行时服务。微软已经认识到在 Oracle 成功有效管理下的 OpenJDK 项目所获得的价值,它收购了 Java,得到了更广泛的软件生态系统,微软也期待做出自己的一份贡献。


由 Martijn Verburg 领导的 Java 工程团队已经与其他使用 Java 的微软组织及其子公司,还有 Java 生态系统中的合作伙伴(例如 Azul Systems、Oracle、Pivotal、Red Hat、Intel、SAP 等)合作,整个团队将加入一些 OpenJDK 邮件列表并参与会话。我们期待参与 Java 的未来。


据了解,Bruno Borges 曾经是 Oracle 的一名开发人员,现在担任微软 Java 的首席产品经理。他介绍了 Java 工程团队负责人, jClarity 的首席执行官 Martijn Verburg,而 jClarity 是 AdoptOpenJDK 的主要贡献者,后者于 2019 年 8 月被微软收购。


目前,Java 在企业级市场有着极为广泛的应用,亚马逊和阿里巴巴都先后开源了自己研发的 OpenJDK:CorrettoDragonwell,如今微软也宣布正式加入 OpenJDK 项目并开源了自己的 OpenJDK 预览版本,这对于该项目未来的发展绝对是利好的。


参考链接:

https://devblogs.microsoft.com/Java/announcing-preview-of-microsoft-build-of-openjdk/

2021 年 4 月 07 日 16:343159

评论 2 条评论

发布
用户头像
吃瓜群众(门外汉):打不过就加入,java niubility
微软:过两年java就会泡在CLR上,并拥有新的名字J#
2021 年 04 月 09 日 09:12
回复
用户头像
good JAVA大法好
2021 年 04 月 08 日 10:52
回复
没有更多了
发现更多内容

netty案例,netty4.1中级拓展篇七《Netty请求响应同步通信》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇三《NettyServer字符串解码器》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇七《嗨!NettyClient》

小傅哥

Netty 小傅哥

netty案例,netty4.1中级拓展篇五《基于Netty搭建WebSocket,模仿微信聊天页面》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇六《SpringBoot+Netty+Elasticsearch收集日志信息数据存储》

小傅哥

Java Netty

程序开发中的持续集成、持续交付、持续部署

石云升

持续集成 持续交付 持续部署 自动化部署

没有亮点的简历,要用详历来弥补

escray

学习 面试 简历 面试现场

netty案例,netty4.1基础入门篇五《NettyServer字符串编码器》

小傅哥

Java Netty

netty案例,netty4.1基础入门篇十《关于ChannelOutboundHandlerAdapter简单使用》

小傅哥

Netty 小傅哥

netty案例,netty4.1中级拓展篇一《Netty与SpringBoot整合》

小傅哥

Java Netty

netty案例,netty4.1中级拓展篇十《Netty接收发送多种协议消息类型的通信处理方案》

小傅哥

Java Netty 小傅哥

LeetCode题解:11. 盛最多水的容器,for循环双指针,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

netty案例,netty4.1基础入门篇一《嗨!NettyServer》

小傅哥

Java Netty

netty案例,netty4.1基础入门篇四《NettyServer收发数据》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇六《NettyServer群发消息》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇九《自定义编码解码器,处理半包、粘包数据》

小傅哥

Java Netty

netty案例,netty4.1基础入门篇十二《简单实现一个基于Netty搭建的Http服务》

小傅哥

Java Netty

netty案例,netty4.1中级拓展篇八《Netty心跳服务与断线重连》

小傅哥

Netty 小傅哥

一把年龄,技术一般,怎么去面试

escray

学习 面试 面试现场

Stream 流

HeGuang

Java

理论 | 三天两夜,万字长文,吃透TCP/IP

简爱W

Java TCP

netty案例,netty4.1中级拓展篇二《Netty使用Protobuf传输数据》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇二《NettyServer接收数据》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇三《Netty传输Java对象》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇九《Netty集群部署实现跨服务端通信的落地方案》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇十一《Netty基于ChunkedStream数据流切块传输》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1中级拓展篇四《Netty传输文件、分片发送、断点续传》

小傅哥

Netty 小傅哥

世界很大,我想去看看

escray

学习 面试 面试现场

netty案例,netty4.1基础入门篇零《初入JavaIO之门BIO、NIO、AIO实战练习》

小傅哥

Java Netty 小傅哥

netty案例,netty4.1基础入门篇八《NettyClient半包粘包处理、编码解码处理、收发数据方式》

小傅哥

Netty 小傅哥

netty案例,netty4.1基础入门篇十一《netty udp通信方式案例Demo》

小傅哥

Java Netty

首次贡献代码 7 年后,微软正式发布OpenJDK 预览版-InfoQ