如果您正在使用Java编写商业应用程序,您可能知道Java Standard Edition (SE) 不是开源软件。它不是像 Python 或 JavaScript 那样由基金会管理的,并且在 2019 年 1 月,Oracle 更改了其政策,要求对 SE 的任何使用,从开发人员的本地环境到生产环境,都需要商业许可证。
这一变化也引发了开源社区中关于许可合规性和 Java 使用的许多问题。如果您仍然感到困惑,本文将指导您了解这些变化如何适用于 Java 开发人员。
Java 社区中不断发展的平台
OpenJDK (Open Java Development Kit) 是 Java SE 的一个免费和开源实现。它是一种替代方案,允许 70% 以上的 Java 开发人员继续稳定他们的 Java 应用程序环境,同时保持在开源生态系统内。 OpenJDK 主要根据GNU GPLv2获得许可。这种分发策略保证的自由使得 OpenJDK 成为 Java 开发人员构建与 Java SE 兼容的桌面应用程序的默认选择。
Oracle 继续开发和维护 Enterprise Java (Java EE),它是建立在 Java SE 平台之上的。 Java EE 包括 SE 范围之外的附加功能,以支持各种企业环境的大规模、可扩展、多层和安全应用程序。 2017 年 9 月,Java EE 平台被转移到Eclipse 基金会,从而采用了更敏捷的流程,改变了治理流程,并实施了更灵活的许可。一年后,在 2018 年,Eclipse 基金会宣布了一个新的品牌名称,Jakarta EE,带有一个新的标志和工作组,以支持开发人员从 Java EE 过渡到新平台。从 Java EE 到 Jakarta EE 的演变也影响了许多企业 Java 开发人员实施新的业务逻辑。
随着 Java 发展而发展的框架
与此同时,诸如 RESTful API (2000)、HTTP 2 (2015) 和 JSON (2017) 等新技术正随着快速变化的 Web 架构而开发。人们对微服务架构的兴趣日益浓厚,但由于 Java EE 正处于转型期,它并没有像新范例出现时那样跟上。
作为回应,更广泛的 Java 社区和一些供应商(IBM、Red Hat 和 Tomitribe)于 2016 年创建了 MicroProfile,以优化用于微服务架构的企业 Java 平台。 MicroProfile 后来加入了 Eclipse 基金会,为企业 Java 开发人员提供了两种实现微服务架构的选项:SpringBoot 或 MicroProfile。 MicroProfile 允许开发人员跨供应商解决方案创建可移植的基于 Java 的微服务,同时确保同一应用程序中匹配的 Java/Jakarta EE 和 MicroProfile API 之间的兼容性。
如果您对 Enterprise Java 开发感兴趣,MicroProfile Starter 是一个探索微服务实践的绝佳资源。 MicroProfile Starter 的图形用户界面需要一些详细信息来生成代码以创建单体 Java 应用程序服务器。
MicroProfile 运行时支持部署应用程序工件(例如,JAR 或 WAR 文件)并将其作为具有 MicroProfile 规范的 Java 应用程序服务器执行。您可以从 MicroProfle Starter 的运行时列表中选择您喜欢的云原生运行时(例如,Quarkus),然后选择规范以获得额外的企业功能,例如容错、OpenAPI、OpenTracing 等。完成这些步骤后,单击“下载”即可开始开发您的应用程序。

(Daniel Oh,CC BY-SA 4.0)
结论
考虑到该语言的悠久历史、收购和重新授权,从开源的角度导航 Java 可能会有点令人困惑。坚持使用 OpenJDK 和 Jakarta EE 允许 Java 开发人员维护标准企业应用程序,而不会损害开源自由。如果您想进一步深入了解,请查看 MicroProfile 或通过探索 Quarkus 深入研究运行时。
1 条评论