1.5 Java-Plattformen: Java SE, Java EE und Java ME 

Die Java-Plattform besteht aus Projekten, die es erlauben, Java-Programme auszuführen. Im Moment werden drei Plattformen unterschieden: Java SE, Java ME und Java EE.
1.5.1 Java SE-Plattform 

Vom Java-Erfinder Sun gibt es mit der Java Platform Standard Edition (Java SE) – früher J2SE – eine Systemumgebung zur Entwicklung und Ausführung von Java-Programmen. Java SE enthält alles, was zur Entwicklung von Java-Programmen nötig ist. Obwohl die Sprachweise etwas unscharf ist, lässt sich die Java SE als Spezifikation verstehen und nicht als Implementierung. Damit Java-Programme übersetzt und ausgeführt werden können, müssen aber ein konkreter Compiler, Interpreter und die Java-Bibliotheken auf unserem Rechner installiert sein. Das freie und mittlerweile unter der GPL stehende JDK von Sun ist üblicherweise die Realisierung der Java SE für Windows, Solaris OS und Linux. Es gibt allerdings auch alternative Implementierungen der Java SE-Bibliotheken, etwa die Open-Source-Variante Apache Harmony [ http://harmony.apache.org/] und GNU Classpath [ http://www.gnu.org/software/classpath/] . Auch gibt es verschiedene Laufzeitumgebungen, doch uns interessiert im Folgenden nur die JVM von Sun.
Versionen der Java SE
Am 23. Mai 1995 stellte Sun erstmals Java der breiten Öffentlichkeit vor. Seitdem ist viel passiert, und in jeder Version erweiterte sich die Java-Bibliothek. In den Version Java 1.1 und Java 5 gab es größere Änderungen an der Programmiersprache selbst. Inkompatibilitäten gibt es von einer Version zur nächsten kaum. [ Die Seite http://tutego.com/go/migratingtojava5 zeigt auf, wie der Umstieg von Walmart auf Java 5 gelang. Sie gelang relativ problemlos: »[…] the overall feeling is that a migration to Java 1.5 in a production environment can be a mostly painless exercise.«]
Version | Datum | Einige Neuerungen/Besonderheiten |
1.0, Urversion |
1995 |
Die 1.0.x-Versionen lösen diverse Sicherheitsprobleme. |
1.1 |
Februar 1997 |
Neuerungen bei der Ereignisbehandlung, Umgang mit Unicode-Dateien (Reader/Writer statt nur Streams), Datenbankunterstützung via JDBC sowie innere Klassen und eine standardisierte Unterstützung für Nicht-Java-Code (nativen Code) |
1.2 |
November 1998 |
Heißt nun nicht mehr JDK, sondern Java 2 Software Development Kit (SDK). Swing ist die neue Bibliothek für grafische Oberflächen und eine Collection-API für Datenstrukturen und Algorithmen. |
1.3 |
Mai 2000 |
Namensdienste mit JNDI, verteilte Programmierung mit RMI/IIOP, Sound-Unterstützung |
1.4 |
Februar 2002 |
Schnittstelle für XML-Parser, Logging, neues IO-System (NIO), reguläre Ausdrücke, Assertions |
5 |
September 2004 |
Generische Typen, typsichere Aufzählungen, erweitertes for, Autoboxing, Annotationen |
6 |
Ende 2006 |
Web-Services, Skript-Unterstützung, Compiler-API, Java-Objekte an XML-Dokumenten binden, System Tray |
Die Version Java 6 hält sich nun schon seit 2 Jahren, obwohl Sun schnellere Produktzyklen versprach. Dennoch gab es in Java 6 Update 10 überraschend Neuerungen, wie transparente Fenster und ein ganz neues Look and Feel für Swing-Anwendungen.
Codenamen und Namensänderungen
Ab Java 5 entfällt das Präfix »1.« in der Versionskennung vom Produkt (also Java 6 statt Java 1.6 und Java 7 statt Java 1.7), bleibt aber in den Entwickler-Versionen weiterhin gültig. [ Siehe dazu http://java.sun.com/j2se/1.5.0/docs/relnotes/version-5.0.html und http://java.sun.com/j2se/versioning_naming.html.] Auch das Anhängsel ».0« für die Hauptversionen und die Unterversionen verschwinden – es bleiben ganze Zahlen mit Updates. Schlussendlich fällt die »2« aus den in Java 1.2 eingeführten Begriffen J2SE, J2ME und J2EE heraus; es heißt aktuell Java SE, Java ME und Java EE. Früher vergab Sun auch Codenamen, wie Tiger für Java 5, doch das ist Vergangenheit. [ http://java.sun.com/j2se/codenames.html]
1.5.2 Java für die Kleinen 

Die Java Platform, Micro Edition (Java ME) ist eine Umgebung für kompakte tragbare Computer – PDAs, Organizer – und Telefone. Java ist heutzutage auf fast jedem Handy zu finden, und Sun spricht von über 2 Milliarden Java-fähigen Telefonen. [ Quelle: http://de.sun.com/sunnews/events/2007/20071203/pdf/TD_FRA_GoslingKeynote.pdf] Die Bedeutung der Java ME schwindet jedoch, da moderne Geräte mittlerweile so viel Power haben, dass sie eine normale JVM laufen lassen können. Die Referenzimplementierung der Java ME heißt phoneMe [https://phoneme.dev.java.net/] und steht unter der GPL; sie implementiert weitere Standards wie Java Mobile Media API, Scalable 2D Vector Graphics API und weitere.
1.5.3 Java für die Großen 

Die Java Platform, Enterprise Edition (Java EE) ist ein Aufsatz für die Java SE und integriert Pakete, die zur Entwicklung von Enterprise-Applikationen nötig sind. Dazu zählen etwa die Komponententechnologie der Enterprise JavaBeans (EJBs), JSP/JSF/Servlets für dynamische Webseiten, Java-Mail-API und weitere. Das Buch schneidet einige Bibliotheken aus der Java EE an, etwa JSP und Servlets oder Web-Services. Interessant ist zu beobachten, dass im Laufe der letzten Jahre Teile aus der Java EE in die Java SE gewandert sind. Im Moment wird diskutiert, ob unter Java 7 die Technologie für objekt-relationales Mapping (JPA) aus der Java EE in die Standard Edition kommt. Die Referenzimplementierung für Java EE 5 ist GlassFish.