What Is Jakarta EE? A Beginner's Guide (Formerly Java EE)
Jakarta EE is a set of official standards for building large, enterprise Java applications. It used to be called Java EE. Rather than being a single framework, it's a collection of specifications that many different products implement. This guide explains what Jakarta EE is, why the name changed, and the core pieces you'll meet — in plain English. It's a foundational part of the Java web framework world.
What is Jakarta EE?
Here's the key idea that trips up beginners: Jakarta EE is not a framework you download and run. It's a set of specifications — written agreements about how certain features should behave. Different vendors then build products that follow those agreements.
Think of it like a wall-socket standard. The standard defines the shape and voltage; many companies make sockets and plugs that follow it. Because everyone agrees on the standard, your devices work anywhere. Jakarta EE does the same for enterprise Java: write to the standard, and your app can run on any compatible server.
Why did Java EE become Jakarta EE?
Enterprise Java was originally run by Sun, then Oracle, under the name Java EE. In 2017 Oracle handed it to the open-source Eclipse Foundation. Because Oracle kept the "Java" trademark, the platform was renamed Jakarta EE.
javax.* to
jakarta.* in Jakarta EE 9. So old javax.servlet imports became
jakarta.servlet. If you ever migrate an old app, this is the main thing to update.
The core specifications to know
You don't need them all at once. These are the ones that come up most:
| Specification | What it's for |
|---|---|
| Jakarta REST (JAX-RS) | Building REST APIs with annotations. |
| CDI | Dependency injection — wiring objects together. |
| Jakarta Persistence (JPA) | Saving and loading objects from a database. |
| Jakarta Servlet | The low-level foundation for handling web requests. |
| Jakarta Faces (JSF) | Component-based web user interfaces. |
A taste of Jakarta EE code
Here's a REST endpoint using Jakarta REST (JAX-RS). Notice the jakarta.* imports:
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
@Path("/hello")
public class HelloResource {
@GET
public String hello() {
return "Hello from Jakarta EE!";
}
} If this looks similar to Quarkus code, that's because Quarkus implements these same Jakarta standards. Learning the standards pays off across many frameworks.
When does Jakarta EE matter to you?
You'll care about Jakarta EE if you work on enterprise systems, run apps on application servers like WildFly, Payara, or Open Liberty, or use cloud-native frameworks (Quarkus, Helidon) that build on its specs. Even if you mostly use Spring Boot, understanding the standards helps you read and reason about a huge amount of Java code.
Quick recap
- Jakarta EE is a set of standards for enterprise Java, not a single framework.
- It's the renamed successor to Java EE, now run by the Eclipse Foundation.
- Packages moved from
javax.*tojakarta.*in Jakarta EE 9. - Core specs include JAX-RS, CDI, and JPA — and modern frameworks build on them.