JDK分裂的根源:

Oracle 发布 JDK 8u211/8u212,并同步推出 JDK 11 正式版Oracle。

  • 从这一天起:

    • JDK 8u211 及以后更新
    • 所有 JDK 11+ 官方二进制包不再允许免费用于生产 / 商业环境,必须购买 Java SE Subscription(订阅)Oracle。个人使用、开发测试、演示仍免费Oracle。
  • 在此之前:

    • JDK 8u202 及更早:BCL 协议,商用免费。
    • 2019 年 1 月:Oracle 已预告授权变更,8u201/8u202 成为 Java 8 最后免费商用版本。

这件事成为了OpenJDK迅速发展并分裂的开端,很多公司包括行业巨头,担心Oracle商业收费会使得自己公司的产品面临高额费用甚至是诉讼危险,OpenJDK项目本来就拥有庞大的社区,已经是一个很成熟的开源产品了,所以OpenJDK的发展得到了空前的支持,同时Oracle为了维护自身在Java领域的权威地位,也对OpenJDK提供了很大的支持。

企业纷纷转向 OpenJDK 发行版:

  • Adoptium(原 AdoptOpenJDK)
  • Amazon Corretto
  • Alibaba Dragonwell
  • Red Hat OpenJDK
  • Microsoft Build of OpenJDK 等。

OpenJDK的源码与商业版本99%相同。

Temurin (Adoptium)

这位可以看作是社区推出的平替。由Eclipse基金会牵头,背后站着IBM、Red Hat这些大佬。它拿OpenJDK源码构建,经过了严格的技术兼容性套件测试,保证了质量和兼容性,关键是完全免费,社区活跃。想找个功能跟Oracle JDK一样,又没商业许可风险的?选它,没毛病。

Amazon Corretto

云厂商们的特供版,这是亚马逊自家用的OpenJDK发行版,免费,还带LTS。据说针对云环境做了一些性能优化和修复。AWS重度用户,用它可能会有奇效。类似的还有阿里的Dragonwell,微软的OpenJDK Build,都是一个路数。

GraalVM

最后说个异类。GraalVM不单单是个JDK,它是个高性能的多语言虚拟机。它最牛的地方在于能把Java代码直接编译成一个本地可执行文件,压根儿不需要JVM就能跑。
因此Java应用启动能快得像C++,内存占用能小得像Go。这在微服务、Serverless这种恨不得一秒钟启动的场景里,简直是降维打击。当然,它也有一些兼容性限制,玩起来门槛稍高,适合爱折腾的先锋玩家。

总结表格

发行版 维护方 许可模式 主要特点 推荐场景
OpenJDK Oracle & 社区 GPLv2 with CPE Java的官方参考实现,所有发行版的基础 任何场景的基础
Oracle JDK Oracle Oracle No-Fee (开发/测试免费) / BCL (商业收费) 官方直接支持,性能稳定 需要Oracle商业支持且预算充足的企业
Temurin Eclipse Adoptium (IBM, Red Hat等支持) GPLv2 with CPE 社区驱动,严格TCK测试,高质量,完全免费 绝大多数开发者和企业的首选
Corretto Amazon GPLv2 with CPE 亚马逊内部使用,针对云优化,LTS支持,免费 AWS云用户,云原生应用
GraalVM Oracle Labs GPLv2 with CPE (社区版) / 商业版 AOT编译成Native Image,高性能,多语言支持 微服务、Serverless、CLI工具,追求极致性能的场景
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐