Wie kann ich mehrere Java-Versionen parallel unter Windows verwalten und wechseln?
- Einführung
- Installation mehrerer Java-Versionen
- Verwalten der Umgebungsvariablen
- Wechseln der Java-Version über die Kommandozeile
- Verwendung von Tools zur Verwaltung von Java-Versionen
- Alternativer Ansatz mit Skripten
- Fazit
Einführung
Auf vielen Windows-Systemen kann es notwendig sein, verschiedene Java-Versionen parallel installiert zu haben – sei es für Entwicklungsprojekte, die unterschiedliche Java-Versionen erfordern, oder für Kompatibilitätstests. Windows bietet zwar keine integrierte Möglichkeit, einfach zwischen verschiedenen Java-Versionen zu wechseln, aber mit einigen Strategien und Werkzeugen kann man mehrere Versionen komfortabel verwalten und bei Bedarf wechseln.
Installation mehrerer Java-Versionen
Zuerst sollten die benötigten Java Development Kits (JDKs) separat installiert werden. Dabei empfiehlt es sich, die JDKs an verschiedenen Orten zu installieren, beispielsweise in Ordnern wie C:\Java\jdk8, C:\Java\jdk11 oder C:\Java\jdk17, um sie klar voneinander zu unterscheiden. Alternativ kann man die Standardpfade der jeweiligen Installationsprogramme nutzen, aber auf eine klare Übersicht achten.
Es ist wichtig, dass die einzelnen Versionen nach der Installation nicht in Konflikt miteinander treten, weshalb man nicht mehrere JDKs einfach überschreibt oder in denselben Ordner installiert.
Verwalten der Umgebungsvariablen
Java-Anwendungen und die Kommandozeile greifen hauptsächlich auf die JAVA_HOME-Umgebungsvariable und den PATH-Eintrag zurück, um die Java-Version zu bestimmen. Die zentrale Idee ist, den JAVA_HOME-Pfad auf die gewünschte JDK-Version zu setzen und den PATH so anzupassen, dass dessen bin-Verzeichnis an erster Stelle steht.
Windows bietet über die Systemeinstellungen die Möglichkeit, Umgebungsvariablen dauerhaft zu setzen, doch das Umschalten zwischen mehreren Versionen erfordert meist manuelle Anpassungen. Deshalb ist es praktisch, Skripte zu verwenden oder Tools zu nutzen, die den Wechsel erleichtern.
Wechseln der Java-Version über die Kommandozeile
Eine einfache Möglichkeit besteht darin, in der Eingabeaufforderung oder in PowerShell die Umgebungsvariablen temporär zu setzen. Das bedeutet, man überschreibt die Variablen nur für die aktuelle Sitzung, ohne die Systemeinstellungen dauerhaft zu ändern.
Beispiel in der Eingabeaufforderung:
set JAVA_HOME=C:\Java\jdk11set PATH=%JAVA_HOME%\bin;%PATH%java -versionOder in PowerShell:
$env:JAVA_HOME = "C:\Java\jdk11"$env:PATH = "$env:JAVA_HOME\bin;" + $env:PATHjava -versionDamit ist die jeweils gesetzte Java-Version für die aktuelle Shell-Sitzung aktiv, und man kann nach Belieben andere Versionen einstellen.
Verwendung von Tools zur Verwaltung von Java-Versionen
Für eine komfortablere Verwaltung gibt es auch Tools, die den Wechsel zwischen verschiedenen Java-Versionen automatisieren. Eines der bekanntesten ist jEnv, das jedoch primär für Unix-Systeme gedacht ist. Unter Windows existiert ein ähnliches Tool namens jabba, welches die Verwaltung mehrerer Java-Versionen stark vereinfacht.
Mit jabba kann man Java-Versionen installieren, auflisten, auswählen und wechseln, ohne manuell Umgebungsvariablen anpassen zu müssen. Die Installation erfolgt über choco install jabba (vorausgesetzt man hat Chocolatey installiert) oder man bezieht es direkt von der Projektseite. Danach lassen sich Befehle wie jabba install openjdk@1.11 oder jabba use openjdk@1.8 verwenden.
Alternativer Ansatz mit Skripten
Wer keine zusätzlichen Tools installieren möchte, kann auch Batch-Dateien erstellen, die die Umgebungsvariablen anpassen. Beispielskript switch-jdk.bat:
@echo offif "%1"=="" ( echo Bitte eine Java-Version als Argument angeben, z.B. jdk8 oder jdk11 exit /b 1)if "%1"=="jdk8" ( setx JAVA_HOME "C:\Java\jdk8" /M setx PATH "C:\Java\jdk8\bin;%PATH%" /M echo Java-Version auf JDK 8 gesetzt) else if "%1"=="jdk11" ( setx JAVA_HOME "C:\Java\jdk11" /M setx PATH "C:\Java\jdk11\bin;%PATH%" /M echo Java-Version auf JDK 11 gesetzt) else ( echo Unbekannte Version %1)pauseDiese Skripte ändern die Umgebungsvariablen dauerhaft (für alle Nutzer, wegen /M), weshalb man die PowerShell oder Eingabeaufforderung mit Administratorrechten ausführen muss. Nach dem Ausführen muss meistens die Shell neu gestartet werden, damit die Änderungen wirksam sind.
Fazit
Die Verwaltung mehrerer Java-Versionen unter Windows erfordert ein wenig Einrichtung. Am einfachsten ist es, Java-Versionen separat zu installieren und dann entweder per temporärer Umgebungsvariable in der Kommandozeile oder mittels speziellen Tools wie jabba zwischen ihnen zu wechseln. Für permanente Umstellungen können Batch-Skripte oder manuelle Anpassungen der Umgebungsvariablen verwendet werden. So behält man stets die Kontrolle über die eingesetzte Java-Version und kann flexibel auf unterschiedliche Projektanforderungen reagieren.