Jakarta EE并不是新技术,他的前身就是大家熟悉的Java EE,老一辈的程序员可能还记得J2EE,是的,他们都是同一个东西,至于为什么会改来改去,这里面就有很多故事了。
1998年12月,SUN公司发布了JDK1.2,开始使用Java 2 这一名称,第二年Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商共同制订了一个基于Java组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform Enterprise Edition简称J2EE。
后面的事情大家也知道,JDK 版本升的很快,J2EE名称如果跟着Java 版本走必然会给开发人员造成困惑不利于该技术的推广,终于在 2006年,SUN公司在发布Java 5 后正式将J2EE改名为Java EE(Java Platform, Enterprise Edition),很多早期 J2EE 开发者虽然现在用的是最新的 Java EE 标准但他们还是认为自己在用 J2EE,当然,只是名称的改变并没有给开发者带来什么麻烦,相比之下下面这个就是要命。
2009 年,Oracle宣布收购 SUN,Java 相关技术自然归 Oracle 所有,在 2017 年,Oracle 宣布开源 Java EE 并将项目移交给 Eclipse 基金会。
但Oracle移交的很不痛快,提了很多要求,其中就包括不能再使用 Java EE这个 名称,虽然有点无理但Eclipse 基金会还是接受了这个要求并且改名为 Jakarta EE,经历了从 J2EE 到 Java EE的改名再经历一次似乎也无所谓,但要命的是 Oracle 要求 Jakarta EE 不能修改 javax 命名空间,这个就意味着 Java EE 移交后代码就此封版,如果想修改代码,不好意思,请另起炉灶。
我们也写了一篇: J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨https://www.ossez.com/t/j2ee-java-ee-jakarta-ee/14382/1 文章。
根据Oracle的要求 Jakarta EE不能修改 javax 命名空间
。
那么 Jakarta EE 只能将代码中 javax 修改为 jakarta ,因此最新版本Jakarta Maven描述是长这样的:
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>10.0.0</version>
<scope>provided</scope>
</dependency>
根据 Java Docs 网站的内容,新的 jakarta 包中的内容长的是这样的。
jakarta.jakartaee-api 10.0.0 javadoc (jakarta.platform)https://javadoc.io/doc/jakarta.platform/jakarta.jakartaee-api/latest/index.html
从上面我们可以看到,新的包完全没有使用 javax 的定义了。
所以,如果你开始使用 jakarta.jakartaee-api 的话,那么包的命名空间就为:jakarta
这个名字确实比 javax 麻烦点,谁都知道这 Oracle 就这个尿性,所以体谅下,有比没有强。
Jakarta EE - Java EE的又一个名字 - Java - OSSEZJakarta EE并不是新技术,他的前身就是大家熟悉的Java EE,老一辈的程序员可能还记得J2EE,是的,他们都是同一个东西,至于为什么会改来改去,这里面就有很多故事了。 1998年12月,SUN公司发布了JDK1.2,开始使用Java 2 这一名称,第二年Sun公司联合IBM、Oracle、BEA等大型企业应用系统开发商共同制订了一个基于Java组件技术的企业应用系统开发规范,名字很自然就取为Java 2 Platform E…https://www.ossez.com/t/jakarta-ee-java-ee/14384