微软通过以 Azure 为中心的 OpenJDK 版本重返 Java

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(329)   2023-06-26 07:54:18

A couple of weeks ago an anonymous Twitter account told the story of 一个几乎被遗忘的微软愚人节恶作剧, the 1996 seeding of empty boxes of a “Microsoft Coffee” Java development tool across Seattle. Of course, at the time, the pranksters didn’t know that Microsoft was already working on its own Java implementation, 视觉J++.

这是微软 Java 故事的第一部分的开始,在从 Visual Studio 工具套件中删除之前,它最终成为微软和 Sun Microsystems 之间就其对非标准 Windows API 的支持的诉讼主题。如果不是因为 Azure 和微软承诺“去开发者所在的地方”,故事可能就这样结束了。

Part two of the story has been Java’s return to Microsoft’s platform, with 用于 Visual Studio Code 的 Java 工具和对 Azure 上 Java 的支持. And now Microsoft is offering its own open source Java distribution, named Microsoft 构建的 OpenJDK, more than a decade after Visual J++’s demise.

微软、Java 和 Azure 云

那么为什么现在使用 Java?这一切都是为了将​​ Azure 托管应用程序的成本保持在最低水平。 Java 错综复杂的历史导致它归甲骨文所有,甲骨文对 Java 开发工具和运行时进行商业许可。如果您不想为商业许可证付费,还有一个替代方案,即 GPL 2 可能的 OpenJDK。遵循公共 Java SE(标准版)规范,OpenJDK 为 Java 运行时和开发人员工具包提供源代码和二进制文件,其中包括 Microsoft 在内的许多不同公司和个人的贡献。

在 Azure 云上支持 Java 使 Microsoft 重新回归 Java,因此微软件最近发布它自己构建的 OpenJDK 11,目标是在 Azure 上使用 Java 的开发人员。使用开源 Java 可以避免某些 Java 实现的复杂许可问题。由于 Microsoft 为 Azure App Service、Azure Functions 和 蔚蓝春云(以及其他)提供 Java 支持,因此使用 OpenJDK 会将其成本降至最低,因为 Microsoft 不需要将许可成本转嫁给用户作为 Azure 订阅的一部分。

现在可供下载,Microsoft 的 OpenJDK 11 预览版适用于 Linux x64、MacOS x64 和 Windows x64,带有所有版本的调试符号以及您自己构建的源代码。如果您想使用 Arm64,可以在 Arm 上使用适用于 Windows 的 OpenJDK 16 的早期访问版本,因此您可以开始试验它。它们都可以与 Visual Studio Code 的 Java 开发工具或任何其他支持 OpenJDK 的 Java 开发环境一起使用,从而简化在您的 PC 上设置和运行测试环境的过程。

OpenJDK 11 的构建已在 Azure Cloud Shell 中可用,因此你可以将其与 jshell 一起使用来试用代码片段。能够从命令行运行 Java 代码,无论是在 Windows 终端还是在 Azure 门户中,将帮助您确保您的代码将在新的 JVM 上运行,让您对即将到来的过渡更有信心。

对 OpenJDK 11 的初始支持是有意义的,即使它基于 2018 版本。微软已经在 Azure 上使用 Azul 的 OpenJDK 11 Zulu Enterprise 实现一段时间了,因为它是一个长期支持版本。从等效的 Zulu 版本切换到自己的 OpenJDK 11 对现有代码的影响要比在 2021 年晚些时候跳转到下一个长期支持版本 OpenJDK 17 小得多。微软将其 OpenJDK 工具描述为任何工具的直接替代品其他 OpenJDK 版本,在您自己的系统或 Azure 上。

请务必注意,Microsoft Build of OpenJDK 是 Microsoft 特定的 OpenJDK 构建。这意味着它包含特定于 Azure 和特定于 Microsoft 的修复程序,这些修复程序可能尚未在上游发行版中完全可用。然而,这并不是微软对 OpenJDK 的分叉,因为它包含在其发行版中的所有修复程序都已提交给 OpenJDK 项目。它今天发布的版本已经拥有 Azure 和 Windows 支持以及经过测试和运行的错误修复,因此您的代码不会受到已知问题的影响。其他版本最终会附带相同的修复程序,只是速度不如微软。

在 Azure 上使用 OpenJDK

到 2021 年底,Microsoft 将使 Microsoft Build of OpenJDK 成为 Azure 托管服务的默认 JVM,因此现在是下载预览版并开始检查您的代码是否可以在其上运行的好时机。它使用与 Eclipse 的 Adoptium QA 工具 相同的脚本构建,并针对 Java 技术兼容性工具包进行了测试,因此 Microsoft 的 OpenJDK 应该是现有 Azul Zulu OpenJDK 实现的直接替代品。但是,确保它不会影响您的代码始终是个好主意。

如果您将自己的 Java 引入 Azure 虚拟机映像,则不会有任何变化,因为您现有的映像将一如既往地继续在您的管理下运行。如果您想更改 JVM,则需要重建映像以使用 Microsoft OpenJDK 工具。

微软不仅关注长期支持版本;它正在基于 OpenJDK 16 开发 Java 16 的 Arm 版本。Arm 支持是迄今为止微软对 OpenJDK 的最大贡献之一,为 OpenJDK 的 Apple Silicon 支持以及微软自己的 SQ1 和 SQ2 Arm 处理器提供了基础。在幕后,微软正在为 Azure 开发 Arm 芯片,重点是边缘和内容分发。 OpenJDK 平台的内部 Arm 构建将帮助它为 Azure 服务(如 Spring Cloud)和面向消费者的服务(如运行 Microsoft 数以千计的 Minecraft 服务器的服务)提供边缘运行时。

尽管 Java SE 为 Java 应用程序提供了一个通用基础,但它并不是完整的 Java Enterprise Edition 版本(现在称为 Jakarta EE)。微软尚未就其平台上对 Jakarta EE 的支持发表任何声明,其 Azure Jakarta 文档的大部分内容都侧重于使用 Red Hat 的 JBoss 企业应用程序平台等工具。看看微软是否朝这个方向采取任何行动,或者它是否会继续其现有的 Red Hat 合作伙伴关系,将会很有趣。

回到自己的 Java 版本对微软来说意义重大。 Java 仍然很流行,现有本地企业应用程序的云迁移需要云 Java。使用 OpenJDK 有助于将成本降至最低,同时仍遵守 Java 规范,确保现有代码继续运行。微软了解其虚拟机和自己的 Linux 容器操作系统的功能,可以生成优化的 OpenJDK 构建并将其更改上游交付。任何其他基于 OpenJDK 构建的组织都可以利用它们——这对 Java 社区中希望在云端和边缘使用 Java 的每个人来说都是一个胜利。

地址:https://www.cundage.com/article/3614938-microsoft-returns-to-java-with-azure-focused-openjdk-release.html

相关阅读

A couple of weeks ago an anonymous Twitter account told the story of 一个几乎被遗忘的微软愚人节恶作剧, the 1996 s...
OpenJDK 的 Microsoft Build 现已普遍可用,提供免费的开源 Java 分发版,可以与 Oracle 的 Java 发布版 争夺企业软件开发人员的青睐。 自 4 月以来一直处...
史蒂文格兰尚 is a longtime software executive, with leadership experience at Microsoft, OpenLogic, and ...
Microsoft Build of OpenJDK,该公司的 Java 的开源开发版,添加了一项实验性功能以改进逃逸分析编译器优化结果。 通过 10 月 24 日发布的补丁和安全更新并称为 2...
此举可能意味着 Oracle 在 Java 领域的激烈竞争,微软正在预览自己构建的 OpenJDK,这是一种免费提供的开源 Java 长期支持发行版。 Java 11 的二进制文件正式称为 Op...
Microsoft 的 Java Engineering Group 开源了 Microsoft GCToolkit,这是一组用于分析 Java 垃圾收集 (GC) 日志文件的库。 在 GitH...
为了深化对 Java 的投资,Microsoft 加入了指导 Java 平台开发的 Java Community Process (JCP)。 微软在 11 月 4 日表示已经签署了 Java ...
基础设施即代码 vendor 缅甸语 is adding support for 爪哇 and YAML, as it looks to allow software developers to...
Apache Tomcat is a long-lived, open source Java servlet container that implements core Java enter...
尽管 Java 8 已经问世近八年了,但在 Perforce Software 公司最近的一项调查中,它仍然是用户中最常用的 Java 版本。然而,调查发现,许多商店计划升级到更新得多的 Jav...