Wenn man mit Java anfängt, stolpert man schnell über verschiedene Begriffe wie Java SE, JDK, JRE oder Java EE oder auch Jakarta EE und ganz ehrlich: Das kann am Anfang ziemlich verwirrend sein.
Was gehört zusammen? Was braucht man zum Programmieren? Und was bedeutet das alles überhaupt?
Java ist zunächst einmal eine Programmiersprache – aber auch eine Plattform. Das bedeutet, dass du mit Java Programm schreiben kannst, die auf vielen verschiedenen Systemen laufe, wie z.B. Windows, macOS, Linux, Android, usw. Gleichzeitig bietet Java aber auch eine Laufzeitumgebung und eine Bibliothekssammlung, damit diese Programm überhaupt funktionieren.
Der große Vorteil: "Write once, run anywhere" - einmal schreiben, überall ausführen.
Java SE steht für Standard Edition. Das ist das Grundgerüst der Java-Plattform. Hier findest du alles, was du für die meisten Anwendungen brauchst:, wie z.B. den Compiler (javac), die Standardbibliothekten (z.B. java.lang, java.util, java.io, usw.) und natürlich die JVM - die Java Virtual Machine.
Wenn du einfache Programme schreibst, z.B. eine Konsolenanwendung oder kleine Tools, dann arbeitest du mit Java SE.
Beispiel:
public class HalloWelt {
public static void main(String[] args) {
System.out.println("Hallo, Java-Welt!");
}
}
Das ist ein klassisches Java SE Programm.
Das JDK (Java Development Kit) ist das Werkzeugpaket für Entwickler. Es enthält alles, was du brauchst, um Java-Programme zu schreiben, kompilieren und testen. Das JDK enthät das JRE (siehe unten), den Compiler (javac) und Tools wie z.B. javadoc, jar, keytool, usw. Wenn du programmierst, brauchst du also das JDK.
Das JRE (Java Runtime Environment) ist das, was du zum Ausführen von Java-Programmen brauchst. Es enthält die JVM (Java Virtual Machine) - also die "Maschine", die deinen Bytecode ausführt - und die Standardbibliothekten. Wenn du nur Java-Programme starten, aber nicht entwickeln möchtest, reicht das JRE völlig aus. Wenn du z.B. Minecraft spielen möchtest, dann brauchst das JRE.
Die JVM (Java Virtual Machine) ist das Herzstück von Java. Sie sorgt dafür, dass dein Java-Code plattformunabhängig läuft:
.java-Dateien).class-Dateien)Dadurch läuft Java auf Windows, Linux oder macOS - ohne dass du deinen Code anpassen musst.
Wenn du mit großen Unternehmensanwendungen arbeitest, stößt du auf Java EE - heute offiziell Jakarta EE genannt. Java EE erweitert Java SE um viele mächtige Funktionen:
Damit lassen sich große, mehrschichtige Anwendungen für Unternehmen entwickeln wie z.B. Buchungssysteme, Verwaltungssoftware oder ERP-Lösungen. Wenn du z.B. mit Java EE oder Jakarta EE arbeitest, nutzt du meist einen Application Server wie Wildfly, Payara oder GlassFish.
Java ME ist die mobile Version von Java - gedacht für eingeschränkte Geräte (z.B. alte Handys, Embedded Systems, IoT-Geräte). Heute spielt Java ME aber kaum noch eine große Rolle, da Android und moderne Embedded-Frameworks andere Wege gehen.
Das OpenJDK ist die freie, offene Variante des JDKs. Es wird von Oracle, Red Hat, Amazon und vielen anderen gemeinsam weiterentwickelt. Wenn du z.B. "Temurin", "Zulu", oder "Corretto" installierst, dann sind das alles Varianten des OpenJDK.
Wie du vielleicht gemerkt hast, steckt sowohl in Java SE als auch im JDK ein Compiler. Java SEdefiniert den Stadandumfang der Java-Plattform - also auch, dass ein Compiler existiert und wie er sich verhält. Das JDK wiederum ist die konkrete Umsetzung dieses Standards und enthält den tatsächlichen Compiler, mit dem du deinen Code übersetzt.
Wenn du mit Java programmieren willst, brauchst du das JDK. Wenn du nur Java-Programme ausführen willst, reicht das JRE. Wenn du Web- oder Unternehmensanwendungen entwickelst, wirst du früher oder später mit Java EE, bzw. Jakarta EE arbeiten.
Alles andere, JVM, Java SE, Java ME, OpenJDK, sind nur verschiedene Bausteine derselben Welt.
