---
title: 'Die Java SE-Plattform, Versionen und Release-Zyklen'
url: 'https://tutego.de/blog/javainsel/2018/08/die-java-se-plattform-versionen-und-release-zyklen'
markdown: 'https://tutego.de/blog/javainsel/2018/08/die-java-se-plattform-versionen-und-release-zyklen.md'
date: '2018-08-29'
description: 'Die Java Platform, Standard Edition (Java SE) ist 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 Begrifflichkeit etwas unscharf ist, lässt sich die Java SE als Spezifikation verstehen und n…'
taxonomy:
  category:
    - Insel
---

# Die Java SE-Plattform, Versionen und Release-Zyklen

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://tutego.de/blog/javainsel/)

## Die Java SE-Plattform, Versionen und Release-Zyklen

29.08.2018 · [Christian Ullenboom](https://tutego.de/blog/javainsel/author/admin/)

Die Java Platform, Standard Edition (Java SE) ist 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 Begrifflichkeit 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. Es gibt unterschiedliche Implementierungen, etwa das OpenJDK.

#### Versionen der Java SE

Am 23. Mai 1995 stellte damals noch Sun Java erstmals der breiten Öffentlichkeit vor. Seitdem ist viel passiert, und in jeder Version erweiterte sich die Java-Bibliothek. Dennoch gibt es von einer Version zur nächsten kaum Inkompatibilitäten, und fast zu 100 % kann das, was unter Java n übersetzt wurde, auch unter Java n + 1 übersetzt werden – nur selten gibt es Abstriche in der Bytecode-Kompatibilität.[\[1\]](#_ftn1)

VersionDatumEinige Neuerungen oder Besonderheiten1.0Januar 1995Erste Version. Folgende 1.0.x-Versionen lösen diverse Sicherheitsprobleme.1.1Februar 1997Neuerungen bei der Ereignisbehandlung, beim Umgang mit Unicode-Dateien (Reader/Writer statt nur Streams), außerdem Datenbankunterstützung via JDBC sowie innere Klassen und eine standardisierte Unterstützung für Nicht-Java-Code (nativen Code)1.2November 1998Es heißt nun nicht mehr JDK, sondern Java 2 Software Development Kit (SDK). Swing ist die neue Bibliothek für grafische Oberflächen, und es gibt eine `Collection`-API für Datenstrukturen und Algorithmen.1.3Mai 2000Namensdienste mit JNDI, verteilte Programmierung mit RMI/IIOP, Sound-Unterstützung1.4Februar 2002Schnittstelle für XML-Parser, Logging, neues IO-System (NIO), reguläre Ausdrücke, Assertions5September 2004Das Java-SDK heißt wieder JDK. Neu sind generische Typen, typsichere Aufzählungen, erweitertes for, Autoboxing, Annotationen.6Ende 2006Webservices, Skript-Unterstützung, Compiler-API, Java-Objekte an XML-Dokumente binden, System Tray7Juli 2011Kleine Sprachänderungen, NIO2, erste freie Version unter der GNU General Public License (GPL)8März 2014Sprachänderungen Lambda-Ausdrücke, `Stream`-API**9**September 2017Modularisierung von Anwendungen10März 2018Lokale Variablendeklarationen mit var11September 2018Entfernung des `java.ee`-Moduls

Tabelle 1.1: Neuerungen und Besonderheiten der verschiedenen Java-Versionen

Die Produktzyklen zeigen einige Sprünge, besonders Java 9 wurde zweimal verschoben.

Oracle und Sun waren sehr lange konservativ darin, das Bytecodeformat zu ändern, sodass eine ältere JVM im Prinzip Programme einer neuen Java-Version ausführen konnte. Aber gerade in den Versionen Java 7 und Java 8 gab es doch einige Neuerungen, die die Aufwärtskompatibilität brechen; eine JVM der Version 7 kann also keine Programme mehr ausführen, die ein Java 8-Compiler übersetzt hat. Da einige Teile aus den Java 11-Bibliotheken entfernt wurden, ist auch dadurch die Abwärtskompatibilität eingeschränkt.

#### Feature-Release vs. zeitorientiertes Release

20 Jahre lang bestimmten Features die Freigabe von neuen Java-Versionen; die Entwickler setzten bestimmte Neuerungen auf die Wunschliste, und wenn alle Features realisiert und getestet waren, erfolgte die allgemeine Verfügbarkeit (eng. general availability, kurz GA). Hauptproblem dieses Feature-basierten Vorgehensmodells waren die Verzögerungen, die mit Problemen bei der Implementierung einhergingen. Vieldiskutiert war das Java 9-Release, weil es unbedingt ein Modulsystem enthalten sollte.

Die Antwort auf diese Probleme, und der Wusch der Java-Community nach häufigeren Releases, beantwortet Oracle mit der „JEP 322: Time-Based Release Versioning“[\[2\]](#_ftn2). Vier Releases sind im Jahr geplant:

- Im März und September erscheinen Haupt-Releases, wie Java 10, Java 11.
- Updates erscheinen einen Monat nach einem Haupt-Release und dann im Abstand von drei Monaten. Im April und Juli erscheinen folglich Updates 10.0.1 und 10.0.2. Für Java 11 sind das Oktober 2018 und Januar 2019.

Anders gesagt: Im Halbjahresrhythmus gibt es Updates, die es Oracle erlauben, in der schnelllebigen IT-Zeit die die Sprache und Bibliotheken weiter zu entwickeln und neue Spracheigenschaften zu integrieren. Kommt es zu Verzögerungen, hält das nicht gleich das ganze Release auf. Java 10 war im März 2018 das erste Release nach diesem Zeitplan, Java 11 folgte im September 2018.

#### Codenamen, Namensänderungen und Vendor-Versionsnummer

Die ersten Java-Versionen waren Java 1.0, Java 1.1, usw. Mit Java 5 entfiel das Präfix »1.« in der Versionskennung des Produkts, sodass es einfach nur Java 5, Java 6, etc. hieß; in den Entwicklerversionen blieb die Schreibweise mit der »1.« aber weiterhin bis Java 9 gültig.[\[3\]](#_ftn3) In Java 10 kommt durch das „Time-Based Release Versioning“[\[4\]](#_ftn4) eine Vendor-Kennung hinzu, sodass alternativ zu Java 11 auch von 18.9 die Sprache ist; gut lässt sich daran die Jahreszahl und der Monat vom Release ablesen.

[\[1\]](#_ftnref1) Die Seite <http://tutego.de/go/migratingtojava5> zeigt auf, wie Walmart der Umstieg auf Java 5 gelang – relativ problemlos: »\[…\] the overall feeling is that a migration to Java 1.5 in a production environment can be a mostly painless exercise.«

[\[2\]](#_ftnref2) <http://openjdk.java.net/jeps/322>

[\[3\]](#_ftnref3) Siehe dazu <http://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5.0.html>.

[\[4\]](#_ftnref4) <http://openjdk.java.net/jeps/322>

Kategorien: [Insel](https://tutego.de/blog/javainsel/category/insel/)

[← Alle Beiträge](https://tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [Die Entwicklung von Java und seine Zukunftsaussichten](https://tutego.de/blog/javainsel/2018/08/die-entwicklung-von-java-und-seine-zukunftsaussichten.md)
- Next: [Standard Edition (Java SE): OpenJDK](https://tutego.de/blog/javainsel/2018/08/standard-edition-java-se-openjdk.md)
