Java Editions Explained: Java SE, EE, and ME

Java is available in different editions designed for different types of applications. The three editions you'll commonly hear about are Java SE, Java EE, and Java ME.

Java Edition Explained

Java is available in different editions designed for different types of applications. The three editions you'll commonly hear about are Java SE, Java EE, and Java ME.

The easiest way to remember them is:

  • Java SE (Standard Edition) — core Java and general-purpose applications.

  • Java EE (Enterprise Edition) — enterprise and server-side applications. Today, Java EE continues as Jakarta EE.

  • Java ME (Micro Edition) — applications for embedded and resource-constrained devices.

If you're learning Java for the first time, Java SE is where you should start.


Quick Comparison: Java SE vs Java EE vs Java ME

Comparison table of Java SE, Java EE, and Java ME

One important detail: Java EE was transferred to the Eclipse Foundation and evolved into Jakarta EE. Modern enterprise Java development therefore uses the Jakarta EE name and jakarta.* APIs rather than treating Java EE as a new actively developed Oracle edition.


What Is Java SE?

Java SE (Java Platform, Standard Edition) is the foundation of Java development.

It provides the Java language, JVM-related platform capabilities, and the core APIs developers use to create general-purpose Java applications.

When you're learning concepts such as:

  • Variables

  • Data types

  • Classes and objects

  • Inheritance

  • Interfaces

  • Exception handling

  • Collections

  • Multithreading

  • File handling

you're primarily learning Java SE.

A simple Java SE program looks like this:

public class HelloJava {

    public static void main(String[] args) {
        System.out.println("Hello from Java SE!");
    }
}

Here, main() is the entry point of the application and System.out.println() prints text to the console.

Nothing enterprise-specific is required.

That's why Java SE should be your starting point before learning frameworks such as Spring Boot or enterprise Java technologies.


Where Is Java SE Used?

Java SE is commonly used for:

  • Learning Java programming

  • Command-line applications

  • Utility programs

  • Desktop applications

  • Server-side foundations

  • Libraries and frameworks

Modern Java SE releases also provide APIs for collections, concurrency, networking, HTTP communication, database connectivity, security, I/O, and much more.

Official Documentation:
Oracle — Java Platform, Standard Edition Documentation


What Is Java EE?

Java EE stands for Java Platform, Enterprise Edition.

It was created for building large-scale server-side and enterprise applications on top of Java SE.

Think about applications such as:

  • Banking platforms

  • E-commerce backends

  • Enterprise portals

  • REST APIs

  • Business management systems

  • Large distributed applications

These systems need more than classes, loops, and collections. They need technologies for HTTP requests, persistence, transactions, dependency injection, security, and other enterprise concerns.

That's where Java EE came in.

However, there's an important naming change every Java developer should understand.

Java EE Is Now Jakarta EE

Java EE was moved to the Eclipse Foundation and its modern continuation is called Jakarta EE.

For example, modern Jakarta EE applications use packages such as:

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;

@Path("/hello")
public class HelloResource {

    @GET
    public String hello() {
        return "Hello from Jakarta EE!";
    }
}

This example defines a simple HTTP endpoint.

A request to:

/hello

can return:

Hello from Jakarta EE!

Jakarta EE provides specifications covering areas such as RESTful web services, persistence, dependency injection, validation, security, transactions, WebSocket communication, and more.

As of 2026, Jakarta EE 11 is the current released platform while Jakarta EE 12 is under development.

Official Documentation:
Jakarta EE — Platform Specifications


What Is Java ME?

Java ME stands for Java Platform, Micro Edition.

It's designed for environments where hardware resources such as memory, processing power, storage, or battery capacity may be limited.

Java ME has historically been used with devices such as:

  • Embedded systems

  • Sensors

  • Mobile devices

  • Gateways

  • Set-top boxes

  • Printers

  • Industrial equipment

  • Internet of Things devices

Oracle describes Java ME as a platform intended for embedded and mobile environments, including microcontrollers, sensors, gateways, and other constrained devices.

A simplified Java ME-style MIDlet example looks like this:

import javax.microedition.midlet.MIDlet;

public class HelloMIDlet extends MIDlet {

    public void startApp() {
        System.out.println("Hello from Java ME!");
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}

You'll notice this doesn't look exactly like the Java SE program.

That's because Java ME applications can use APIs and lifecycle models designed specifically for constrained device environments.

For most developers starting Java today, Java ME won't be the first edition they need. But understanding what it is helps you see how broad the Java ecosystem became.

Official Documentation:
Oracle Java Platform, Micro Edition


How Java SE, EE, and ME Relate

Here's a simple mental model:

flowchart TD
    JAVA["Java Platform"]

    JAVA --> SE["Java SE<br/>Standard Edition"]
    JAVA --> EE["Java EE → Jakarta EE<br/>Enterprise Development"]
    JAVA --> ME["Java ME<br/>Micro Edition"]

    SE --> CORE["Core Java<br/>Collections • I/O • Concurrency • Networking"]
    EE --> ENTERPRISE["Enterprise Apps<br/>REST • Persistence • Security • Transactions"]
    ME --> EMBEDDED["Embedded Devices<br/>Sensors • IoT • Constrained Hardware"]

Java SE provides the core foundation.

Enterprise Java technologies build on that foundation to solve server-side and business application problems, while Java ME targets environments with tighter hardware constraints.

Diagram of how Java SE, Java EE, and Java ME relate

The Java platform editions target different application environments


Java SE vs Java EE vs Java ME

Overview of Java SE versus Java EE versus Java ME

Which Java Edition Should You Learn?

If you're a beginner, start with Java SE.

You need a strong understanding of core Java before moving into frameworks and enterprise development.

A practical learning path looks like this:

Java SE
   ↓
Core Java
   ↓
OOP
   ↓
Collections
   ↓
Exception Handling
   ↓
Multithreading
   ↓
JDBC
   ↓
Spring / Spring Boot or Jakarta EE

If your goal is backend development, Java SE gives you the foundation you'll later use with technologies such as Spring Boot, Hibernate, REST APIs, microservices, and Jakarta EE.

Java ME is worth exploring when your work specifically involves compatible embedded or constrained-device environments.


Common Confusion: Java EE vs Jakarta EE

One mistake beginners make is assuming Java EE and Jakarta EE are completely separate technologies.

They're part of the same enterprise Java lineage.

A simplified timeline is:

Java EE
   ↓
Transferred to Eclipse Foundation
   ↓
Jakarta EE

So when you encounter older tutorials using terms such as Java EE, javax.servlet, or other javax.* enterprise APIs, remember that modern Jakarta EE development has moved many enterprise APIs to the jakarta.* namespace.


Key Takeaways

  • Java SE provides the core Java platform and should be learned first.

  • Java EE was designed for enterprise Java development.

  • Modern Java EE has evolved into Jakarta EE.

  • Java ME targets embedded and resource-constrained devices.

  • Backend developers normally learn Java SE before moving to Spring Boot or Jakarta EE.

  • You don't need to learn all three editions before building Java applications.


Official Documentation

For accurate API and platform details, use the official documentation:

Java SE Documentation:
Oracle Java Platform, Standard Edition Documentation

Jakarta EE Documentation:
Jakarta EE Platform Specifications

Java ME Documentation:
Oracle Java Platform, Micro Edition


Previous Lesson

← Features of Java: Why Java Is Popular

What's Next?

Now that you understand the major Java editions, the next step is understanding the tools that actually run and develop Java programs.

Next Lesson → Installing the JDK



Continue Learning

Explore more beginner-friendly Java tutorials:

What Is Java?

History of Java

Features of Java

Java Editions (SE, EE & ME)

Installing the JDK

Installing IntelliJ IDEA

Your First Java Program

Java Program Structure

JDK vs JRE vs JVM


Have a Question?

If something isn't clear or you get stuck while learning Java, leave a comment below.

We'll do our best to explain it with simple words, practical examples, and code you can actually understand.

Happy Coding! ☕


Follow TheTechLane

Want more developer tutorials, programming tips, and tech updates?

Follow TheTechLane on LinkedIn, X, Instagram, Threads, and Pinterest to stay connected and catch new tutorials when they go live.

Learn. Build. Share.

— TheTechLane