Zum Inhalt springen

Was ist Java eigentlich?

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 macOS
  1. Der Compiler javac übersetzt deinen Quelltext nicht in Maschinencode für deinen Prozessor, sondern in Bytecode – eine Zwischensprache, die auf jedem Betriebssystem gleich ist.
  2. Die Java Virtual Machine führt diesen Bytecode aus. Sie selbst ist ein ganz normales Programm für dein Betriebssystem – deshalb musstest du ein JDK für Windows x64 herunterladen.
  3. Damit das schnell ist, übersetzt die JVM häufig genutzte Programmteile während der Laufzeit in echten Maschinencode (Just-in-Time-Compiler, JIT). Außerdem räumt sie nicht mehr benötigten Speicher selbst auf (Garbage Collection).

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:

  • Java SE – Standard Edition: die Sprache, die JVM und die Standardbibliothek. Das ist die Grundlage für alles andere – und das, was diese Schulung behandelt.
  • Java EE – Enterprise Edition: Erweiterungen für Server-Anwendungen, etwa Web-Schnittstellen, Datenbank-Zugriff über Objekte oder Transaktionen. Oracle hat Java EE 2017 an die Eclipse Foundation abgegeben; dort heißt es heute Jakarta EE.
  • Java ME – Micro Edition: eine abgespeckte Version für Geräte mit wenig Speicher, z. B. ältere Handys. Heute kaum noch relevant.

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.

  • Kostenlos und Open Source – auch im Unternehmen, ohne Einschränkungen.
  • Geprüft: Temurin besteht das TCK und ist damit offiziell Java SE-kompatibel.
  • Herstellerneutral: getragen von der Eclipse Foundation und mehreren Firmen, nicht von einem einzelnen Anbieter.
  • Langer Support: LTS-Versionen erhalten über Jahre Sicherheits-Updates.
  • Einfach zu bekommen: als ZIP, als Installer und über Paketmanager.

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:

Terminal-Fenster
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.

Was ist der Unterschied zwischen JDK und JRE?

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.

Warum läuft eine .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.

Ist Eclipse Temurin „echtes“ Java?

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.

Was bedeutet die Versionsnummer 21.0.4?

Hauptversion 21 (eine LTS-Version), viertes Update mit Fehlerbehebungen und Sicherheits-Updates.

Was hat Jakarta EE mit Java zu tun?

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.