Java-Editionen: SE, EE, ME und Jakarta EE
Kurz: Java gibt es in mehreren „Editionen” für verschiedene Einsatzzwecke: SE (Standard Edition) für normale Programme, EE (Enterprise Edition, heute Jakarta EE) für große Server-Anwendungen und ME (Micro Edition) für kleine Geräte.
Genauer: Alle Editionen nutzen dieselbe Sprache und dieselbe Virtuelle Maschine. Sie unterscheiden sich in den mitgelieferten Bibliotheken (APIs). SE ist die Grundlage, EE und ME bauen darauf auf oder schränken sie ein.
Im Detail
| Edition | Zweck | Beispiele |
|---|---|---|
| Java SE | Desktop-, Kommandozeilen- und Server-Programme, Kern der Sprache | Collections, I/O, Threads, Streams, Netzwerk |
| Jakarta EE (früher Java EE) | Unternehmens-Webanwendungen | Servlets, JPA (Datenbanken), CDI, REST (JAX-RS), Transaktionen |
| Java ME | Eingebettete Geräte, alte Handys, Sensoren | Stark verkleinerte Bibliothek |
- Umbenennung: Oracle übergab Java EE 2017 an die Eclipse Foundation. Aus rechtlichen Gründen heißt es seit Version 9 Jakarta EE. Dabei wurden die Pakete von
javax.*aufjakarta.*umgestellt. Das bricht Altcode, der beim Update angepasst werden muss. - Spezifikation und Umsetzung: Jakarta EE ist nur eine Beschreibung. Umgesetzt wird sie von Anwendungsservern wie WildFly, Payara, Open Liberty oder von Servlet-Containern wie Tomcat.
- Spring: Das verbreitete Spring-Framework ist keine EE-Edition, nutzt aber viele der gleichen Konzepte. Spring Boot 3 setzt auf
jakarta.*. - ME heute: Spielt kaum noch eine Rolle. Android nutzt eigene Bibliotheken, und für eingebettete Geräte gibt es Java SE Embedded, GraalVM oder andere Sprachen.
- Welche brauche ich? Zum Lernen und für die meisten Programme genügt das JDK (SE).
Siehe auch: JDK, JRE (Java Runtime Environment), Packages/API