Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Jakarta EE 8, 9, and 9.1 mark three different steps: the move from Java EE to Eclipse Foundation stewardship, a breaking change from javax.* to jakarta.*, and then Java SE 11 runtime support without a broad API refresh. The short version: EE 9 is the major migration boundary; EE 9.1 is a smaller follow-up.

What do the Jakarta EE version numbers mean?

They identify successive platform releases, but they do not promise that every release is a major API redesign. EE 8 marks the transition from Java EE governance under the Java Community Process (JCP) to the Eclipse Foundation. EE 9 changes the namespace used by enterprise APIs. EE 9.1 keeps the EE 9 specifications functionally equivalent while adding Java SE 11 runtime support.

The distinction matters when planning an upgrade: the number alone does not tell you how much application code must change. Check the namespace, the Java SE version supported by the target, and any API or technology changes in that release.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Jakarta EE 8, 9, and 9.1 compared

Release Official release date Main change Migration significance
Jakarta EE 8 September 10, 2019 Java EE 8 moved from the JCP to the Eclipse Foundation. It began the Jakarta EE era without the later javax.*-to-jakarta.* namespace break.
Jakarta EE 9 December 8, 2020 Moved enterprise APIs to the jakarta.* namespace while remaining functionally similar to EE 8. Applications and dependencies using the old namespace need migration; EE 9 is not source-code or binary compatible with previous releases.
Jakarta EE 9.1 May 25, 2021 Kept EE 9-equivalent specifications and added Java SE 11 runtime support; no API updates were expected. It is a runtime-support follow-up, not a second namespace change or broad API feature release.

Official dates and release descriptions are listed on the Jakarta EE release page. The Jakarta EE Platform 11 Specification describes the goals of EE 9 and 9.1 in its historical changes section.

Why did Java EE change from javax to jakarta?

After stewardship moved to the Eclipse Foundation, the enterprise APIs adopted the jakarta.* namespace. For developers, the key consequence is practical: code that imports an enterprise API from javax.* cannot be assumed to work unchanged against the corresponding EE 9 API under jakarta.*. This affects source code and compiled binaries, and dependencies must also be compatible with the target namespace.

There is a broader compatibility goal for Jakarta EE: portable applications that use only platform-defined APIs and behavior should run unchanged on a compatible newer platform. That goal does not erase the specific incompatibility introduced by the EE 9 namespace move. Treat the platform goal and the namespace migration as separate facts.

What changed after EE 9.1?

Jakarta EE 10: wider specification updates

EE 10, released September 22, 2022, was the first release with major and minor component-specification updates beyond the namespace migration. It introduced the Core Profile for smaller runtime footprints. It removed Java SE 8 support; Java SE 11 and newer were supported, with TCK support required for Java SE 11 and 17. The EE 10 platform specification also notes the removal of entity beans and the embeddable EJB container. See the Jakarta EE 10 Platform Specification.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Jakarta EE 11: Java 17 minimum and Jakarta Data

EE 11, released June 26, 2025, requires Java SE 17 or newer and has TCK support for Java SE 17 and 21. It adds Jakarta Data and removes Managed Beans, SOAP with Attachments, XML Binding, and XML Web Services from the platform. “Removed from the platform” does not mean that every implementation must make the technology impossible to use: the specification says platform products may continue to support XML Web Services specifications as standalone specifications. Consult the Jakarta EE 11 Platform Specification for the platform’s defined scope.

Jakarta EE 12: still in development

The official release listing checked on October 4, 2026, identifies EE 11 as released and EE 12 as under development; it does not establish a release date for EE 12. Because release status can change, check the official release page for the current status.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to choose a target release

Start with the runtime and application you actually need to support, rather than assuming the newest platform is automatically the easiest target. Compare these factors:

  • Java SE floor: EE 9.1 adds Java SE 11 runtime support; EE 10 removes Java SE 8 support and supports Java SE 11 and newer; EE 11 requires Java SE 17 or newer.
  • Namespace: If your application or dependencies still use enterprise APIs in javax.*, moving to EE 9 or later requires addressing the jakarta.* namespace change.
  • Specification changes: EE 9.1 is functionally equivalent to EE 9, while EE 10 and EE 11 include wider platform changes.
  • Technology availability: Check whether your application depends on technologies made optional or removed from the platform in later releases. A technology not included in the platform may still be available separately, depending on the implementation.
  • Profile scope: The Platform is the umbrella specification for hosting Jakarta EE applications; the Web Profile targets web applications; the Core Profile targets smaller runtimes. EE 11 Web and Core Profile specifications list Java SE 17 or higher. Read the Platform, Web Profile, and Core Profile specifications for their scopes.

The official EE 11 ratification page identifies Eclipse GlassFish as a compatible implementation used for ratification on Java 17 and 21. That is evidence about the ratification process, not a complete comparison of available runtimes; see the EE 11 compatibility page.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.