Ein Mac kann mehrere JDK-Installationen gleichzeitig erkennen. Die offizielle macOS-Anleitung beschreibt dafür die JDK-Verwaltung über java_home und unterscheidet bei Java 25 zwischen AArch64- und x64-Paketen: offizielle Installationsanleitung für JDK 25 auf macOS.
Die wichtigste Entscheidung: Wenn java -version nach der Installation weiterhin eine alte Version zeigt, installieren Sie Java 25 nicht sofort erneut. Prüfen Sie zuerst den tatsächlich verwendeten Pfad, die erkannte JDK-Liste, JAVA_HOME und PATH. In vielen Fällen liegt Java 25 bereits auf dem Mac, aber der Standardpfad oder die IDE zeigt noch auf ein anderes JDK.
01 Für wen dieser Leitfaden gedacht ist
Dieser Ablauf richtet sich an Schüler, Studierende und Programmieranfänger, die Java 25 installiert haben, aber mit java oder javac weiterhin eine alte Version sehen.
Er passt auch, wenn Ihre IDE Java 25 nicht erkennt, der Schulrechner keine Administratorrechte erlaubt oder Sie auf einem entfernten Mac eine eigene, saubere Java-Umgebung einrichten möchten.
02 Erst die Symptome trennen: Java, javac und IDE sind nicht dasselbe
„Java“ bezeichnet im Alltag oft drei verschiedene Dinge:
javastartet ein bereits kompiliertes Programm.javacübersetzt eine Java-Datei in Bytecode.- Die IDE verwendet zusätzlich ein ausgewähltes JDK für Projekt, Build und teilweise für die IDE selbst.
Das ist wie ein Bücherregal: Das neue Java-25-Buch kann bereits im Regal stehen. Wenn auf dem Schreibtisch aber noch das alte Buch liegt, greifen Sie beim Lernen weiterhin zur alten Ausgabe. Die Installation und die aktive Auswahl sind deshalb getrennte Fragen.
Für Java-Unterricht und eigene Projekte genügt es nicht, dass java funktioniert. Sie müssen auch prüfen, ob der Compiler javac vorhanden ist. Die Einführung in JDK und erste Java-Programme erklärt diesen Unterschied ebenfalls in den offiziellen Java-Einstiegsmaterialien.
03 Erste Prüfung: Welcher Befehl wird tatsächlich aufgerufen?
Öffnen Sie ein neues Terminalfenster und führen Sie die Befehle einzeln aus:
java -version
javac -version
which java
which javac
Bewerten Sie jede Ausgabe sofort:
| Prüfung | Erwartung bei einer funktionierenden Java-25-Umgebung | Bedeutung bei einem abweichenden Ergebnis |
|---|---|---|
java -version |
Eine Ausgabe mit Java 25 | Der Startbefehl verwendet eine andere Java-Version oder findet Java nicht |
javac -version |
Eine Ausgabe mit javac 25 |
Der Compiler fehlt, ist nicht im Pfad oder zeigt auf ein anderes JDK |
which java |
Ein konkreter Pfad zu einer Java-Installation | Der Pfad zeigt, welche ausführbare Datei zuerst verwendet wird |
which javac |
Ein konkreter Compilerpfad | Ein fehlender Pfad weist auf ein PATH- oder JDK-Problem hin |
Die genaue Versionsausgabe kann zusätzlich eine Patch-Version enthalten. Entscheidend ist zunächst, ob die Hauptversion 25 erscheint. Eine alte Ausgabe bei java -version bedeutet nicht automatisch, dass die Installation fehlgeschlagen ist.
Wenn which java und which javac auf unterschiedliche Verzeichnisse zeigen, stoppen Sie an dieser Stelle. Ändern Sie noch keine Konfigurationsdatei. Erst müssen Sie wissen, welche Installation jeweils angesprochen wird.
Die erkannte JDK-Liste kontrollieren
macOS stellt mit java_home ein Werkzeug bereit, um installierte JDKs aufzulisten und einen passenden Pfad zu ermitteln. Prüfen Sie:
/usr/libexec/java_home -V
Das große -V listet die erkannten Java-Versionen und ihre Installationspfade. Eine Zeile mit Java 25 zeigt, dass macOS dieses JDK grundsätzlich gefunden hat. Fehlt Java 25 vollständig, liegt das Problem eher bei Download, Paketwahl oder Installation als bei PATH.
Für den Pfad eines JDK 25 können Sie außerdem prüfen:
/usr/libexec/java_home -v 25
Wird ein Pfad ausgegeben, erkennt macOS Java 25. Erscheint eine Fehlermeldung, ist Java 25 entweder nicht korrekt installiert oder nicht an dem Ort vorhanden, den macOS erwartet. Die Verwendung von /usr/libexec/java_home und die macOS-JDK-Verzeichnisstruktur sind in der offiziellen Dokumentation zur JDK-Installation und Verzeichnisstruktur beschrieben.
Hinweis: Löschen Sie keine geschützten Systemordner und ersetzen Sie keine Dateien unter
/usr/bin. Arbeiten Sie mit dem vom JDK bereitgestellten Installationspfad und Ihrer Benutzerumgebung. Ein unbekanntes Reparaturskript kann PATH-Einträge überschreiben oder Sicherheitsrisiken schaffen.
04 Warum `java -version` nach der Installation unverändert bleibt
Die häufigste Ursache ist eine alte Zeile in Ihrer Shell-Konfiguration. PATH ist die Suchliste für ausführbare Programme. Steht ein alter Java-Pfad weiter vorne, nimmt das Terminal diesen zuerst.
Prüfen Sie zuerst:
echo "$JAVA_HOME"
echo "$PATH"
Die erste Ausgabe zeigt, ob JAVA_HOME bereits gesetzt ist. Die zweite Ausgabe zeigt die Reihenfolge Ihrer Suchpfade. Ein leerer Wert bei JAVA_HOME ist nicht automatisch ein Fehler, weil macOS den Java-Pfad auch über java_home ermitteln kann. Ein alter, ausdrücklich eingetragener JDK-Pfad kann jedoch Java 25 überstimmen.
Java 25 als Standard für das aktuelle Terminal setzen
Für eine kontrollierte Sitzung können Sie den von macOS ermittelten Java-25-Pfad verwenden:
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
export PATH="$JAVA_HOME/bin:$PATH"
java -version
javac -version
Die erste Zeile macht Java 25 zum ausgewählten JDK dieser Shell-Sitzung. Die zweite setzt den zugehörigen bin-Ordner an den Anfang des Suchpfads. Danach sollten java und javac dieselbe Hauptversion melden.
Prüfen Sie anschließend:
echo "$JAVA_HOME"
which java
which javac
JAVA_HOME sollte nun auf das JDK 25 zeigen. Die beiden which-Befehle sollten ausführbare Dateien innerhalb dieses JDK-Pfads finden. Wenn nur java funktioniert, aber javac nicht, verwenden Sie möglicherweise kein vollständiges JDK.
Die Einstellung nach dem Neustart erhalten
Eine export-Zeile gilt zunächst nur für das aktuelle Terminalfenster. Schließen Sie es, öffnen Sie ein neues und prüfen Sie erneut:
java -version
javac -version
Ist die Version danach wieder alt, wurde die Einstellung nicht dauerhaft gespeichert. Welche Konfigurationsdatei verwendet wird, hängt von Ihrer Shell ab. Prüfen Sie zunächst:
echo "$SHELL"
Lesen Sie die Ausgabe als Hinweis, nicht als Befehl zum blinden Überschreiben. Eine dauerhafte Einstellung gehört in die passende Benutzer-Konfigurationsdatei Ihrer Shell. Fügen Sie keine zweite, widersprüchliche JAVA_HOME-Zeile hinzu.
| Situation | Wahrscheinliche Ursache | Nächste sichere Aktion |
|---|---|---|
| Java 25 funktioniert nur bis zum Schließen des Terminals | Die Einstellung wurde nur mit export gesetzt |
Die passende Shell-Konfiguration prüfen und eine einzige gültige Zuordnung eintragen |
| Nach jedem neuen Terminal erscheint eine andere Version | Mehrere Konfigurationsdateien setzen JAVA_HOME oder PATH |
Nach doppelten Java-Zeilen suchen und alte Einträge gezielt auskommentieren |
java_home -v 25 findet Java, java aber nicht |
Der aktive PATH zeigt nicht auf das ausgewählte JDK | JAVA_HOME/bin vor den alten Java-Pfad setzen |
java funktioniert, javac fehlt |
Kein vollständiges JDK aktiv oder PATH zeigt auf eine Laufzeitumgebung | JDK-Installation und which javac prüfen, nicht geschützte Ordner verändern |
Wenn Sie Ihre ursprüngliche Einstellung wiederherstellen müssen, entfernen Sie nur die von Ihnen ergänzten Zeilen oder setzen Sie sie mit einem führenden Kommentarzeichen außer Kraft. Löschen Sie nicht die gesamte Shell-Konfiguration. Bei einem verwalteten Schulgerät darf auch diese Datei eventuell nicht dauerhaft geändert werden.
05 Java 25 ist installiert, aber `javac` fehlt
Ein Laufzeitbestandteil kann Java-Programme starten. Für das Übersetzen eigener Dateien benötigen Sie dagegen den Compiler aus dem JDK. Für Anfänger ist dies der wichtigste Unterschied zwischen „Java startet“ und „Java ist für den Kurs eingerichtet“.
Prüfen Sie zuerst:
command -v javac
/usr/libexec/java_home -V
Wenn command -v javac keinen Pfad liefert, aber die JDK-Liste Java 25 enthält, testen Sie den Compiler direkt über JAVA_HOME:
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
"$JAVA_HOME/bin/javac" -version
Gibt dieser direkte Aufruf javac 25 aus, ist die Installation wahrscheinlich vorhanden. Dann liegt der Fehler im PATH. Gibt es auch dort keinen Compiler, prüfen Sie, ob Sie tatsächlich ein JDK und nicht nur eine Laufzeitumgebung installiert haben.
Verwenden Sie ausschließlich einen vertrauenswürdigen Download und kontrollieren Sie die für Ihren Mac passende Datei auf der offiziellen JDK-25-Downloadseite. Installieren Sie nicht mehrere Pakete in der Hoffnung, dass eines zufällig den Pfad repariert.
06 Apple Silicon und Intel: Das richtige Paket auswählen
Bei Java 25 müssen Sie die Prozessorarchitektur Ihres Macs mit dem Installationspaket abgleichen. Die offizielle Dokumentation unterscheidet zwischen AArch64 für Apple-Silicon-Macs und x64 für Intel-Macs. Diese Begriffe stehen für unterschiedliche Paketvarianten, nicht für zwei Java-Sprachen.
Ermitteln Sie die Architektur mit:
uname -m
Eine Ausgabe arm64 weist auf Apple Silicon hin. Eine Ausgabe x86_64 weist auf Intel hin. Die Zuordnung der macOS-Pakete zu AArch64 beziehungsweise x64 ist in der offiziellen JDK-25-Installationsanleitung dokumentiert.
| Terminalausgabe | Passende Paketfamilie | Was Sie bei einem falschen Paket tun sollten |
|---|---|---|
arm64 |
AArch64 | Den passenden AArch64-Download verwenden |
x86_64 |
x64 | Den passenden x64-Download verwenden |
| Keine eindeutige Ausgabe, etwa auf einem verwalteten oder entfernten Mac | Architektur über Systemeinstellungen oder Übergabeinformationen bestätigen | Nicht anhand des Gerätenamens raten |
Ein falsches Paket kann die Installation verhindern oder später zu Start- und Kompatibilitätsproblemen führen. Daraus lässt sich ohne konkrete Messung kein allgemeiner Leistungsvorteil ableiten. Bei einem entfernten Mac prüfen Sie die Architektur nach der Anmeldung direkt im System oder anhand der bereitgestellten technischen Informationen. Vertrauen Sie nicht allein auf eine Bezeichnung wie „M-Serie“.
07 Die Terminal-Version stimmt, aber die IDE nimmt weiterhin das alte JDK
Eine IDE kann drei getrennte Java-Entscheidungen enthalten:
- das JDK, mit dem die IDE selbst läuft;
- das JDK des Projekts;
- das JDK einzelner Module oder Build-Aufgaben.
Darum kann das Terminal Java 25 melden, während Ihr Kursprojekt noch eine alte Version verwendet. Die relevanten SDK- und Projekteinstellungen werden in der Dokumentation zu IDE-SDKs und den Projekt- und Moduleinstellungen beschrieben.
Gehen Sie nicht sofort die vollständige IDE-Neuinstallation an. Erstellen Sie stattdessen eine kleine Datei:
public class VersionsCheck {
public static void main(String[] args) {
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.home"));
}
}
Speichern Sie sie als VersionsCheck.java. Testen Sie zunächst im Terminal:
javac VersionsCheck.java
java VersionsCheck
Die Kompilierung muss ohne Fehlermeldung durchlaufen. Die Ausgabe zeigt die tatsächlich laufende Java-Version und das verwendete Java-Verzeichnis. Starten Sie danach dieselbe Datei über die IDE. Vergleichen Sie beide Ausgaben.
- Terminal und IDE zeigen Java 25: Die Umgebung ist wahrscheinlich konsistent.
- Terminal zeigt 25, IDE zeigt eine ältere Version: Projekt-SDK oder Modul-SDK ändern.
- Beide zeigen eine alte Version: Erst
JAVA_HOME,PATHund JDK-Liste reparieren. - IDE startet nicht oder verwendet einen unerwarteten Pfad: IDE-eigene Laufzeit und Projekt-JDK getrennt prüfen.
Die IDE-Terminal-Konfiguration kann zusätzlich eine andere Shell oder andere Startdatei verwenden. Prüfen Sie deshalb bei abweichenden Ergebnissen auch die Dokumentation zum IDE-Terminal. Entscheidend ist nicht der Name des ausgewählten Menüs, sondern die Ausgabe von java.version und java.home.
08 Die Reparatur als Entscheidungsweg
Arbeiten Sie diese Bedingungen von oben nach unten ab. Wechseln Sie erst zum nächsten Zweig, wenn der aktuelle Test abgeschlossen ist.
- Wenn
/usr/libexec/java_home -v 25einen gültigen Pfad ausgibt, dann setzen SieJAVA_HOMEauf diesen Pfad und prüfenjavasowiejavacerneut. - Wenn Java 25 in der JDK-Liste fehlt, dann prüfen Sie Download, Paketarchitektur und vollständige JDK-Installation. Installieren Sie nicht blind erneut.
- Wenn der direkte Aufruf
"$JAVA_HOME/bin/javac" -versionfunktioniert, dann korrigieren Sie nurPATH. - Wenn der direkte Compileraufruf scheitert, dann prüfen Sie, ob ein vollständiges JDK vorhanden ist. Ersetzen Sie keine Systemdateien.
- Wenn das Terminal korrekt ist, die IDE aber nicht, dann ändern Sie Projekt- und Modul-JDK in der IDE.
- Wenn Sie keine Schreibrechte für Shell-Dateien oder Installationsorte haben, dann wenden Sie sich an die Geräteverwaltung oder verwenden eine ausdrücklich erlaubte, unabhängige Umgebung.
- Wenn Sie auf einem entfernten Mac arbeiten, dann dokumentieren Sie Version, Architektur und Projektpfad nach jeder Anmeldung. Bei wechselnden Ergebnissen melden Sie die Abweichung an den Anbieter, statt selbst Schutzmechanismen zu umgehen.
09 Abschlussprüfung für Kurs und erstes Projekt
Beenden Sie die Reparatur erst, wenn alle Punkte erfüllt sind:
- [ ]
java -versionzeigt Java 25. - [ ]
javac -versionzeigt den passenden Compiler. - [ ]
which javaundwhich javacführen zur erwarteten JDK-Umgebung. - [ ]
echo "$JAVA_HOME"zeigt nicht mehr auf eine alte Installation. - [ ]
VersionsCheck.javalässt sich kompilieren. - [ ] Das Programm läuft im Terminal.
- [ ] Das gleiche Programm läuft mit Java 25 in der IDE.
- [ ] Nach dem Öffnen eines neuen Terminalfensters bleibt die Auswahl erhalten.
- [ ] Das Kursprojekt liegt in einem Ordner, den Sie wiederfinden und beschreiben können.
- [ ] Auf einem entfernten Mac bleiben Projektdateien an einem kontrollierten Speicherort erhalten.
Die letzten beiden Punkte sind keine Java-Befehle, verhindern aber einen typischen Lernfehler: Die Version ist repariert, doch die Projektdatei liegt nur in einer flüchtigen Sitzung oder im falschen Ordner.
10 Wann Sie aufhören sollten, lokal weiter zu reparieren
Wenn Java 25 in der JDK-Liste fehlt, ist weiteres Umschalten von PATH wirkungslos. Wenn javac trotz bestätigtem JDK nicht verfügbar ist, müssen Sie die Installation oder die Zugriffsrechte klären. Wenn eine Schulverwaltung Änderungen blockiert, sollten Sie diese Sperre nicht umgehen.
Für ein langfristig unverändertes, schwer belastetes Projekt kann ein eigener Mac sinnvoller sein. Für einen kurzen Kurs, ein erstes Java-Programm oder einen Test ist der Kauf dagegen nicht zwingend notwendig. Eine Übersicht zur Mac-Miete für Lern- und Entwicklungsaufgaben kann Ihnen helfen, eine unabhängige Umgebung getrennt vom Schulrechner zu beurteilen. Prüfen Sie dabei Datenschutz, Zugangsmethode, Speicherort der Dateien und die Möglichkeit, Ihre Einstellungen zu sichern.
Ein verwalteter Schulrechner hat typischerweise drei Nachteile: Sie können JDKs nicht frei installieren, Shell-Einstellungen werden möglicherweise zurückgesetzt und die IDE darf ihre Projektumgebung nicht vollständig ändern. Ein eigener lokaler Mac vermeidet diese Einschränkungen, bindet Sie aber an Anschaffung, Wartung und ein einzelnes Gerät. Ein entfernter Mac über CALMVPS ist für zeitlich begrenztes Lernen interessant, wenn Sie eine echte macOS-Umgebung benötigen, aber zunächst keine Hardware anschaffen möchten. Die verfügbaren Mietoptionen und Abrechnungsmodelle sollten Sie vorab mit Ihrer Projektdauer und den Anforderungen Ihres Kurses vergleichen.
Wenn Sie den Fehler jetzt systematisch prüfen, lautet die Reihenfolge: erkannte JDKs, Architektur, JAVA_HOME, PATH, javac, IDE-Projekt und anschließend Neustarttest. Bleibt die Schule bei ihren Zugriffsregeln oder verursacht die bestehende Installation wiederholt Konflikte, ist eine autorisierte, saubere Mac-Umgebung meist sinnvoller als weitere Änderungen am verwalteten Gerät.