Die Sprache
Die Regeln, nach denen du Quelltext schreibst: Schlüsselwörter, Syntax, Typen. Festgelegt in der Java Language Specification (JLS).
Im ersten Kapitel hast du ein JDK von adoptium.net heruntergeladen, java -version
eingetippt und eine Zahl wie 25.0.1 gesehen. Dieses Kapitel ordnet ein, was du
da eigentlich installiert hast – und warum gerade so.
| Jahr | Ereignis |
|---|---|
| 1991 | Bei Sun Microsystems startet ein kleines Team um James Gosling das Green Project. Ziel: Software für Geräte wie Set-Top-Boxen. Die Sprache heißt zunächst Oak. |
| 1995 | Weil der Name Oak schon vergeben ist, wird die Sprache in Java umbenannt – nach der Kaffeesorte, daher auch die Tasse im Logo. Sun stellt Java öffentlich vor. |
| 1996 | JDK 1.0 erscheint. Versprechen: „Write once, run anywhere“ – einmal schreiben, überall ausführen. |
| 1998 | Java 1.2, vermarktet als „Java 2“. Kurz darauf wird Java in Editionen aufgeteilt (siehe unten). |
| 2004 | Java 5 bringt große Spracherweiterungen, u. a. Generics und Enums. |
| 2006/07 | Sun veröffentlicht Java als Open Source – das Projekt OpenJDK entsteht. |
| 2010 | Oracle übernimmt Sun Microsystems und damit Java. |
| 2014 | Java 8 mit Lambdas und Streams – der größte Umbruch der Sprache seit Java 5. |
| 2017 | Java 9 mit dem Modulsystem. Danach wechselt Java auf einen festen Halbjahres-Rhythmus. |
| heute | Alle sechs Monate eine neue Version, alle zwei Jahre eine mit Langzeit-Support (LTS). |
Java war ursprünglich auch für Programme im Browser gedacht (Applets). Das hat sich nicht durchgesetzt und ist längst Geschichte. Groß geworden ist Java woanders: auf Servern, in Unternehmensanwendungen – Banken, Versicherungen, Behörden – und lange Zeit auch auf Android.
Wenn jemand „Java“ sagt, kann er drei verschiedene Dinge meinen:
Die Sprache
Die Regeln, nach denen du Quelltext schreibst: Schlüsselwörter, Syntax, Typen. Festgelegt in der Java Language Specification (JLS).
Die Plattform
Alles, was ein Java-Programm zum Laufen braucht: die Java Virtual Machine (JVM) und die Standardbibliothek mit Tausenden fertiger Klassen.
Das Ökosystem
Werkzeuge (IDEs, Maven, Gradle), Frameworks (Spring, Jakarta EE), eine riesige Zahl freier Bibliotheken – und weitere Sprachen wie Kotlin, die ebenfalls auf der JVM laufen.
Den Weg kennst du schon aus Kapitel 1 – jetzt mit Namen:
┌──▶ JVM für Windows Hallo.java ──javac──▶ Hallo.class ───┼──▶ JVM für Linux Quelltext Bytecode └──▶ JVM für macOSjavac übersetzt deinen Quelltext nicht in
Maschinencode für deinen Prozessor, sondern in Bytecode – eine
Zwischensprache, die auf jedem Betriebssystem gleich ist.Das ist der Kern von „Write once, run anywhere“: Deine Datei Hallo.class
läuft unverändert auf jedem Rechner, auf dem eine JVM installiert ist.
| Begriff | Bedeutung | Enthält |
|---|---|---|
| JVM | Java Virtual Machine | führt Bytecode aus |
| JRE | Java Runtime Environment | JVM + Standardbibliothek – genug, um Programme auszuführen |
| JDK | Java Development Kit | JRE + Werkzeuge wie javac – nötig, um Programme zu entwickeln |
Als Entwickler brauchst du immer ein JDK. Eine separate JRE zum Download gibt es bei vielen Anbietern seit Java 11 nicht mehr: Anwendungen bringen ihre Laufzeitumgebung heute meist selbst mit.
Seit Ende der 1990er-Jahre gibt es Java in mehreren Editionen:
Die Schulung heißt also Java SE, weil wir die Sprache und ihre Standardbibliothek lernen – ohne Server-Frameworks. Alles, was du hier lernst, brauchst du später auch bei Jakarta EE oder Spring.
Die kurze Antwort: Oracle – aber das ist nur ein Teil der Wahrheit. Es lohnt sich, drei Dinge zu unterscheiden:
| Was | Wer | Bedeutung |
|---|---|---|
| Spezifikation | Java Community Process (JCP), federführend Oracle | Legt fest, was „Java SE 25“ ist: Sprache, JVM und Bibliothek. |
| Quelltext | OpenJDK – Open Source (GPL), von Oracle geleitet | Die Referenzimplementierung. Neben Oracle arbeiten u. a. Red Hat, SAP, Amazon, Microsoft und IBM mit. |
| Marke „Java“ | Oracle | Nur Oracle darf ein Produkt einfach „Java“ nennen. |
Daraus folgt etwas Wichtiges: Jeder darf den OpenJDK-Quelltext nehmen, daraus ein JDK bauen und es weitergeben. Genau das tun viele Firmen. Damit sich ein solches JDK „Java SE-kompatibel“ nennen darf, muss es eine offizielle Testsammlung bestehen, das Technology Compatibility Kit (TCK).
Da alle aus demselben OpenJDK-Quelltext bauen, verhalten sich die verschiedenen JDKs praktisch identisch. Sie unterscheiden sich vor allem in Lizenz, Support-Dauer und Herausgeber. Eine Auswahl:
| Distribution | Herausgeber |
|---|---|
| Eclipse Temurin | Eclipse Adoptium (Eclipse Foundation) |
| Amazon Corretto | Amazon |
| Microsoft Build of OpenJDK | Microsoft |
| Red Hat build of OpenJDK | Red Hat |
| SapMachine | SAP |
| Azul Zulu | Azul |
| Oracle JDK | Oracle |
Die Namen klingen so verschieden, weil nur Oracle die Marke „Java“ verwenden darf.
Lange Zeit war das JDK von Oracle das Java schlechthin. Seit 2018/19 gelten aber eigene Lizenzbedingungen: Je nach Version und Zeitraum ist der Einsatz im Unternehmen kostenpflichtig. Viele Unternehmen sind deshalb auf andere Distributionen umgestiegen – und gerade in Schulungen und Firmen will man ein JDK, bei dem sich diese Frage gar nicht erst stellt.
Die ersten Versionen hießen ganz normal 1.0, 1.1, 1.2 usw. Ab
1.5 wurde nach außen nur noch die zweite Zahl genannt: Java 5. Intern
blieb es aber bei 1.5 – und so ging es weiter bis Java 8:
java version "1.8.0_402"Das ist Java 8, Update 402. Diese alte Schreibweise begegnet dir auch heute noch in Konfigurationen oder älteren Anleitungen.
Seit Java 9 ist die erste Zahl die Hauptversion. Die Nummer, die du in Kapitel 1 gesehen hast, ist so zu lesen:
25.0.1+8│ │ │ └── Build-Nummer│ │ └──── Update: Fehlerbehebungen und Sicherheits-Updates│ └────── Zwischenversion (in der Praxis immer 0)└───────── Hauptversion (Feature-Release)Seit 2018 erscheint jeden März und jeden September eine neue Hauptversion – pünktlich wie ein Fahrplan. Neue Funktionen müssen nicht mehr jahrelang auf das nächste große Release warten.
Updates mit Fehlerbehebungen erscheinen vierteljährlich (Januar, April, Juli, Oktober). Jede Hauptversion bekommt sie aber nur sechs Monate lang – bis die nächste erscheint. Für Unternehmen, die nicht jedes halbe Jahr umstellen wollen, gibt es deshalb LTS-Versionen (Long-Term Support), die über Jahre mit Updates versorgt werden:
| LTS-Version | Erschienen | Neu seit der vorigen LTS (Auswahl) |
|---|---|---|
| 8 | März 2014 | Lambdas, Streams, neue Datums-API |
| 11 | September 2018 | var für lokale Variablen, neuer HTTP-Client |
| 17 | September 2021 | Records, Switch-Ausdrücke, Text Blocks, Sealed Classes |
| 21 | September 2023 | Pattern Matching für switch, Record Patterns, virtuelle Threads, Sequenced Collections |
| 25 | September 2025 | kompakte Quelldateien, Modul-Importe |
Seit Java 17 kommt alle zwei Jahre eine LTS-Version. Die Versionen dazwischen sind vollwertige Releases, werden in Unternehmen aber selten produktiv eingesetzt.
Neue Sprachmittel erscheinen oft zuerst als Preview: Sie sind fertig
implementiert, können sich aber noch ändern und müssen ausdrücklich
eingeschaltet werden (--enable-preview). Erst wenn sie in einer späteren
Version endgültig werden, sollte man sie im echten Code verwenden.
Die JRE enthält alles, um Java-Programme auszuführen (JVM und
Standardbibliothek). Das JDK enthält zusätzlich die Entwicklungswerkzeuge, vor
allem den Compiler javac.
.class-Datei auf Windows und Linux, ein JDK aber nicht?Die .class-Datei enthält plattformunabhängigen Bytecode. Das JDK – und damit
die JVM – ist dagegen ein Programm für ein bestimmtes Betriebssystem und einen
bestimmten Prozessor.
Ja. Temurin wird aus dem OpenJDK-Quelltext gebaut, aus dem auch Oracle sein JDK baut, und besteht das offizielle Kompatibilitäts-Testpaket (TCK). Nur den Namen „Java“ darf es nicht tragen.
21.0.4?Hauptversion 21 (eine LTS-Version), viertes Update mit Fehlerbehebungen und Sicherheits-Updates.
Jakarta EE ist die Fortsetzung von Java EE, der Enterprise-Erweiterung für Server-Anwendungen. Sie baut auf Java SE auf und wird heute von der Eclipse Foundation weiterentwickelt.