Java Editions (SE, Jakarta EE, ME)
Job descriptions often mention "Core Java", "J2EE" or "Java EE". These names refer to editions of Java. If you know what each edition covers, you'll understand what a company is asking for, and you'll know that Core Java (Java SE) always comes first.
Java SE: Standard Edition
Java SE is what you install when you install a JDK. It includes:
- the Java language and the compiler,
javac - the JVM, which runs your programs
- the standard library: thousands of ready-made classes for text, numbers, dates, collections, files, networking, threads and more
When people say "Core Java", they mean Java SE. Every other edition and every Java framework depends on it.
Jakarta EE: For Large Server Applications
Big systems, such as an online banking portal or a railway reservation website, need more than the standard library. They need common ways to handle web requests, talk to databases, manage transactions and send messages.
Jakarta EE is a set of standards for these jobs, built on top of Java SE. For example, it defines Servlets for handling web requests and Jakarta Persistence (JPA) for saving objects in a database.
It has had three names, which is why you'll see all of them:
| Name | Period |
|---|---|
| J2EE (Java 2 Enterprise Edition) | 1999–2006 |
| Java EE | 2006–2017 |
| Jakarta EE | 2018 onwards, after Oracle handed it to the Eclipse Foundation |
Since Jakarta EE 9 (2020), its package names start with jakarta. instead of javax.. Popular frameworks such as Spring Boot 3 use these Jakarta packages.
Java ME: For Small Devices
Java ME (Micro Edition) is a smaller Java for devices with little memory and processing power. Many games on feature phones in the 2000s were written in Java ME. Today it is used in some embedded devices.
A related technology, Java Card, runs tiny Java programs on smart cards. Many SIM cards and bank chip cards contain a Java Card platform.
Which Edition Should You Learn?
| Edition | What it's for | Learn it when |
|---|---|---|
| Java SE | All Java programs | First: this course |
| Jakarta EE | Large server applications | After Java SE, often through a framework such as Spring Boot |
| Java ME / Java Card | Small and embedded devices | Only if you work on such devices |
Java SE Already Does a Lot
You don't need any extra edition to do useful work. This program uses only the Java SE standard library to work with dates.
import java.time.LocalDate;
public class ReleaseDates {
public static void main(String[] args) {
LocalDate java25 = LocalDate.of(2025, 9, 16);
System.out.println("Java 25 came out on a " + java25.getDayOfWeek());
System.out.println("100 days later: " + java25.plusDays(100));
}
}Java 25 came out on a TUESDAY
100 days later: 2025-12-25How it works
- Line 1 imports
LocalDate, a class from the Java SE standard library for dates without a time. - Line 5 creates the date 16 September 2025, when Java 25 was released.
- Line 6 asks which day of the week that was.
- Line 7 adds 100 days and prints the new date. Java handles the different month lengths for you.
Try it yourself: change the date on line 5 to your own birthday. On which day of the week were you born?
Common Mistakes
Thinking "J2EE", "Java EE" and "Jakarta EE" are three different things. They are the same family of standards under three names. In job descriptions, "J2EE" usually just means "server-side Java".
Skipping Java SE and starting with Spring Boot. Frameworks hide a lot of Java SE behind annotations. Without a strong Core Java base, error messages and bugs in a Spring Boot application are very hard to understand.
Mixing javax and jakarta packages. Older code uses javax.servlet, newer code uses jakarta.servlet. A library written for one doesn't work with the other without changes.
Practice
- Easy: For each of these, write which edition it uses: a Java program that prints a bill, a hospital's patient web portal, a game on an old feature phone.
- Harder: In
ReleaseDates, print the date 30 days before Java 25's release. Hint: look for a method named likeplusDays.
Key Takeaways
Was this tutorial helpful?