Java Platform Editions

About

Java is not a single monolithic platform — it consists of multiple editions, each tailored for different use cases.

Java Platform Edition Timeline

Year

Event

1996

Java SE 1.0 released

1999

Java EE (J2EE) introduced

2000

Java ME introduced for embedded/mobile

2004

Java EE 5 brings annotations, EJB 3.0

2008

JavaFX announced by Sun

2011

Oracle acquires Sun; continues Java stewardship

2017

Java EE 8 released (last under Oracle)

2018

Java EE donated to Eclipse Foundation

2019

Jakarta EE 8 (javax namespace, Eclipse maintained)

2020

Jakarta EE 9 (migration to jakarta.*)

2022

Jakarta EE 10 with new features

2023

Jakarta EE 11 development with Java 17 base

1. Java SE (Standard Edition)

Overview

  • Purpose: Provides the core functionality and foundation for all other Java editions.

  • Components:

    • JVM (Java Virtual Machine)

    • JDK (Java Development Kit)

    • Core Libraries (java.lang, java.util, java.io, java.net, etc.)

    • Development tools (javac, java, javadoc, jdb, etc.)

Use Cases

  • General-purpose applications

  • Desktop applications

  • Server-side applications (when not using full EE stack)

  • Library development

Key APIs and Features

  • Collections Framework

  • Concurrency Utilities

  • Streams API

  • Lambda Expressions

  • Generics

  • I/O and NIO

  • Exception Handling

  • Memory Management (Garbage Collector)

Versioning and Updates

  • Released every 6 months (March and September)

  • Long-Term Support (LTS) versions: Java 8, 11, 17, 21

Licensing

  • Oracle JDK: Commercial and free usage restrictions

  • OpenJDK: Open-source alternative with the same features

2. Java EE (Enterprise Edition)

Overview

  • Purpose: For building large-scale, distributed, multi-tiered enterprise applications.

  • Builds On: Java SE

Key Components (javax.* namespace)

  • Servlet, JSP, JSF (Web Layer)

  • EJB (Business Layer)

  • JPA (Persistence)

  • JAX-RS, JAX-WS (Web Services)

  • JMS (Messaging)

  • CDI (Dependency Injection)

  • Bean Validation (javax.validation)

  • Security, Transactions, Interceptors

Application Servers

  • GlassFish

  • WebLogic

  • WebSphere

  • JBoss / WildFly

Lifecycle

  • Java EE 5 (2006): Major revamp with annotations, EJB 3.0

  • Java EE 6 (2009): CDI, Servlet 3.0, REST API support

  • Java EE 7 (2013): WebSocket, JSON-P, Batch API

  • Java EE 8 (2017): Bean Validation 2.0, JSON-B

Final Release: Java EE 8 (2017)

3. Jakarta EE (Successor of Java EE)

Overview

  • Governance: Managed by the Eclipse Foundation

  • Purpose: Continue evolving enterprise Java under open governance

  • Key Change: Namespace transition from javax.* to jakarta.*

Versions and Features

  • Jakarta EE 8 (2019):

    • Identical to Java EE 8 but under Eclipse governance

  • Jakarta EE 9 (2020):

    • Complete namespace change to jakarta.*

    • No new features

  • Jakarta EE 10 (2022):

    • New features in Servlet, CDI, REST, Faces

    • Java SE 11+ required

  • Jakarta EE 11 (2024):

    • Introduced modularity and better container integration

Compatibility

  • Requires Java SE 11+ (depending on version)

  • Works with modern containers and cloud-native platforms

Modern Application Servers

  • Payara

  • WildFly

  • Open Liberty

  • TomEE

4. Java ME (Micro Edition)

Overview

  • Purpose: Platform for embedded systems and mobile devices with limited resources

  • Builds On: Java SE (subset)

Configurations and Profiles

  • CLDC (Connected Limited Device Configuration)

  • CDC (Connected Device Configuration)

  • MIDP (Mobile Information Device Profile)

APIs

  • javax.microedition.*

  • Lightweight UI Toolkit (LWUIT)

Use Cases

  • Set-top boxes

  • Smart cards

  • Older mobile devices (pre-smartphone era)

Decline

  • Replaced by Android and other IoT technologies

5. JavaFX

Overview

  • Purpose: Rich client application development

  • Replacement For: AWT, Swing

Features

  • Scene Graph-based UI framework

  • FXML (XML-based UI markup)

  • CSS Styling

  • Media & WebView

  • 2D/3D Graphics

Status

  • Bundled until Java 11, now maintained separately as OpenJFX

Usage

  • Standalone desktop apps

  • UI for embedded devices

Last updated

Was this helpful?