Java EE vs J2EE vs Jakarta EE

Last Modified: 2022/12/31

概述

相信很多同学在工作中都用到过 Java EE 相关的技术,然而究竟什么是 Java EE,可能却不甚了解,就在 Java EE 概念还没搞清楚的时候,又冒出来 Jakarta EE,有时还能在网上一些地方看到 J2EE 的说法。这么多概念,难免有些懵圈,今天我们一起学习下这些概念。赶时间的同学,可以只看本文最后的总结部分。

什么是 Java EE

Java EE 全称为 Java Enterprise Edition(Java 企业版),Java EE 是一套包含了多个有助于企业级应用开发的规范集合。可以将规范理解为技术说明书和接口。至于接口的实现则是开放的,每个人都可以根据规范的要求提供自己的实现。话虽如此,你想让提供自己的实现并得到认可却并不容易,有头铁的兄弟可以参考这里

作为开发者的我们不需要关心规范的实现,只需要利用 Java EE 提供的接口,面向接口编程即可。拿 Tomcat 来说,它是一个 servlet 容器,实现了 Java EE 规范的中 jsp/servlet 这一小部分规范,我们在 web 开发过程中,打交道只是 Java EE 提供的一系列接口(最常用的是 HttpServlet),而不用关心 Tomcat 底层究竟是怎么实现那些接口。

之前提到 Java EE 是一套规范集合,可分为以下大类:

  • Web 规范集合,这里面包含了著名的如:servlet 和 webSocket 等技术规范;
  • Web Service 规范集合,包含了 xml 绑定、json 绑定等技术规范;
  • Enterprise 规范集合,包含了事务控制、持久化和依赖注入等技术规范;
  • 其他规范集合,包含了 validation 等技术规范。

JAVA EE 演变过程

前面介绍了什么是 Java EE,其实在早期,它还有一个名字叫 J2EE,然而到了 2017 年的 9 月份,Oracle 公司将 Java EE 版权让渡给 Eclipse 基金会。但从法律层面上 Eclipse 基金会不得不将 Java EE 改成 Jakarta EE,因为 Java 的版权属于 Oracle 公司。然而有趣的是,Oracle 公司虽然开源了源代码,却没有开源所有的相关文档,因为开源这些文档可能会产生一些法律问题。

下表是 Java EE 的版本及其对应的年份:

版本 年份
J2EE 1.2 1999
J2EE 1.3 2001
J2EE 1.4 2003
JEE 5 2006
JEE 6 2009
JEE 7 2013
JEE 8 2017
Jakarta EE 2018

总结

Java EE、J2EE 和 Jakarta EE 本质上是同一个东西在不同时期的不同称谓罢了。

有问题吗?点此反馈!

温馨提示:反馈需要登录