Java-Version ändern unter Windows (aktualisiert für Java 25)

how to switch java versions in windows

In diesem Artikel zeige ich dir, wie du mehrere Java-Versionen unter Windows installierst und wie du die Java-Version auf der Kommandozeile und in der PowerShell ändern kannst:

Mehrere Java-Versionen unter Windows

Um diese Kommandos zum Wechsel der Java-Version auch auf deinem System zu ermöglichen, folge dieser einfachen Schritt-für-Schritt-Anleitung.

Los geht’s…

Schritt 1: Installation mehrerer Java-Versionen

Mehrere Java-Versionen parallel zu installieren ist unter Windows kinderleicht. Du kannst einfach die Installer der einzelnen Versionen herunterladen und ausführen – jede Version wird dabei automatisch in ein separates Verzeichnis installiert.

Downloadquellen

  • Java SE 1.1 – Diese Version lässt sich auf einem 64-Bit-Windows nicht mehr installieren.
  • Java SE 1.2 – Wird standardmäßig nach C:\jdk1.2.2\ und C:\Program Files (x86)\JavaSoft\JRE\1.2\ installiert – ich empfehle das der Übersicht halber auf C:\Program Files (x86)\Java\jdk1.2.2\ und C:\Program Files (x86)\Java\jre1.2.2\ zu ändern.
  • Java SE 1.3 – Wird standardmäßig nach C:\jdk1.3.1_28\ installiert – ich empfehle das auf C:\Program Files (x86)\Java\jdk1.3.1_28\ zu ändern.
  • Java SE 1.4 – Wird standardmäßig nach C:\j2sdk1.4.2_19\ installiert – ich empfehle das auf C:\Program Files (x86)\Java\jdk1.4.2_19\ zu ändern.

Ab den folgenden Versionen sollten die Standard-Installationsverzeichnisse beibehalten werden:

Achtung – folgende Versionen dürfen in der Oracle-Distribution nur noch für private Zwecke und zur Entwicklung eingesetzt werden:

Die folgende Version ist zum aktuellen Zeitpunkt ein Early Access Build und sollte nur zum Testen verwendet werden:

Schritt 2: Java-Umgebungsvariablen definieren

Welche Java-Version verwendet wird, entscheiden die folgenden zwei Umgebungsvariablen:

  • JAVA_HOME – viele Start-Skripte verwenden diese Variable.
  • Path – wird verwendet, wenn man aus der Konsole eine Java-Binary (java, javac, etc…) aufruft.

Diese Variablen sollten immer auf die gleiche Java-Installation zeigen, um Inkonsistenzen zu vermeiden. Manche Programme, wie z. B. Eclipse definieren die Java-Version in einer eigenen Konfigurationsdatei (bei Eclipse ist dies bspw. der Eintrag „-vm“ in der Datei eclipse.ini).

Manuelles Setzen der Java-Umgebungsvariablen

Die Java-Installer legen bereits diverse Umgebungsvariablen an, welche zunächst einmal aufgeräumt werden müssen. Der schnellste Weg die Umgebungsvariablen zu ändern, ist es die Windows-Taste zu drücken und dann „env“ einzutippen – als Suchergebnis wird dann direkt „Edit the system environment variables“ angeboten:

Windows-Umgebungsvariablen öffnen
Windows-Umgebungsvariablen öffnen

An dieser Stelle kannst du einfach auf „Enter“ drücken, um die Systemeigenschaften zu öffnen:

Windows Systemeigenschaften
Windows Systemeigenschaften

Klicke auf „Environment Variables…“ und das folgende Fenster erscheint:

Windows Umgebungsvariablen Java 24
Windows Umgebungsvariablen Java 24

Als Standardversion empfehle ich die aktuelle Release-Version Java 24. Dementsprechend sollten folgende Einstellungen vorgenommen werden:

  • In der oberen Liste („User variables“) sollte es keinerlei Java-Einträge geben.
  • In der unteren Liste („System variables“) sollte ein Eintrag „JAVA_HOME = C:\Program Files\Java\jdk-24“ existieren. Wenn dieser Eintrag nicht existiert, kannst du ihn mittels „New…“ hinzufügen. Wenn er existiert, aber auf ein anderes Verzeichnis zeigt, kannst du ihn mit „Edit…“ ändern.
  • Unter „Path“ solltest du, falls vorhanden, die folgenden Einträge löschen (diese werden von den Installern der Uralt-Versionen gesetzt):
    • C:\ProgramData\Oracle\Java\javapath
    • C:\Program Files (x86)\Common Files\Oracle\Java\javapath
  • Stattdessen solltest du folgenden Eintrag einfügen:
    • %JAVA_HOME%\bin

Der Eintrag sollte dann wie folgt aussehen (die übrigen Einträge der Liste werden bei dir wahrscheinlich anders aussehen, da du andere Anwendungen installiert hast als ich):

Hinzufügen von "%JAVA_HOME%\bin" zur Systemvariable "Path"
Hinzufügen von „%JAVA_HOME%\bin“ zur Systemvariable „Path“

Der letzte Eintrag sorgt dafür, dass Path und JAVA_HOME automatisch konsistent sind.

Achtung: das funktioniert nur für die an dieser Stelle hinterlegte Standardeinstellung. Ändert man JAVA_HOME über die Kommandozeile, muss man Path entsprechend anpassen. Aber keine Sorge – das machen die Skripte, die du dir im nächsten Schritt herunteladen kannst, automatisch.

Java-Version prüfen unter Windows

Öffne nun eine Kommandozeile, um die Einstellungen mit den folgenden Befehlen zu prüfen:

echo %JAVA_HOME%
java -versionCode-Sprache: Klartext (plaintext)

Als Ergebnis solltest du folgendes sehen:

Java-Version prüfen unter Windows
Java-Version prüfen unter Windows

Schritt 3: Scripte zum Wechsel der Java-Version installieren

Um die Java-Version auf der Kommandozeile zu ändern, habe ich einige Batch-Dateien vorbereitet, die du dir auf dein System kopieren kannst. Hier schon einmal der Link (bis zur Early Access Version Java 25): scripts-up-to-java25.zip

Die ZIP-Datei enthält Skripte mit den Namen

  • java25.bat, java24.bat, java23.bat, usw. für alle Java-Versionen,
  • die entsprechenden Dateien java25.ps1, java24.ps1, usw. für die PowerShell,
  • sowie jeweils ein allgemeinens Skript javaX.bat bzw. javaX.ps1.

Ich schlage dir vor, die Skripte in das Verzeichnis C:\Program Files\Java\scripts zu entpacken.

Die Skripte sehen beispielsweise so aus:

java25.bat:

@echo off
call javaX "Java 25" %1Code-Sprache: DOS .bat (dos)

java25.ps1:

javaX "Java 25" $args[0]Code-Sprache: PowerShell (powershell)

javaX.bat:

@echo off

if %1 == "Java 1.2" set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.2.2
if %1 == "Java 1.3" set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.3.1_28
...
if %1 == "Java 23" set JAVA_HOME=C:\Program Files\Java\jdk-23
if %1 == "Java 24" set JAVA_HOME=C:\Program Files\Java\jdk-24
if %1 == "Java 25" set JAVA_HOME=C:\Program Files\Java\jdk-25

if "%~2" == "perm" (
  setx JAVA_HOME "%JAVA_HOME%" /M
)

set Path=%JAVA_HOME%\bin;%Path%

echo %~1 activated.Code-Sprache: DOS .bat (dos)

javaX.ps1:

param ($javaVersion, $perm)

switch ($javaVersion) {
  "Java 1.2" { $env:JAVA_HOME = "C:\Program Files (x86)\Java\jdk1.2.2" }
  "Java 1.3" { $env:JAVA_HOME = "C:\Program Files (x86)\Java\jdk1.3.1_28" }
  ...
  "Java 23" { $env:JAVA_HOME = "C:\Program Files\Java\jdk-23" }
  "Java 24" { $env:JAVA_HOME = "C:\Program Files\Java\jdk-24" }
  "Java 25" { $env:JAVA_HOME = "C:\Program Files\Java\jdk-25" }
}

if ($perm -eq "perm") {
  [Environment]::SetEnvironmentVariable("JAVA_HOME", $env:JAVA_HOME, [System.EnvironmentVariableTarget]::Machine)
}

$env:Path = $env:JAVA_HOME + '\bin;' + $env:Path

Write-Output "$javaVersion activated."Code-Sprache: PowerShell (powershell)

In den Dateien javaX.bat und javaX.ps1 musst Du vermutlich einige Pfade zu den installierten Java-Versionen anpassen.

Die Skripte aktualisieren die JAVA_HOME-Umgebungsvariable und fügen das darin liegende bin-Verzeichnis am Anfang der Path-Variable ein. Dadurch wird dieses beim Aufruf von Java-Befehlen wie java oder javac als erstes nach der entsprechenden Executable durchsucht.

(Die Path-Variable wird mit jedem Umschalten länger. Mach dir darüber keine Sorgen. Dies betrifft nur die aktuell geöffnete Kommandozeile.)

Schritt 4: Füge das Skript-Verzeichnis zum Pfad hinzu

Damit du die Skripte von überall aufrufen kannst, musst du das Verzeichnis zur „Path“-Umgebungsvariablen hinzuzufügen (genau wie du es im zweiten Schritt mit „%JAVA_HOME%\bin“ gemacht hast):

 Hinzufügen von "C:\Program Files\Java\scripts" zur Systemvariable "Path"
Hinzufügen von „C:\Program Files\Java\scripts“ zur Systemvariable „Path“

Wenn Du von allen Java-Versionen die aktuellsten Releases installiert hast, solltest du die Skripte ohne weitere Anpassungen verwenden können. Öffne eine neue Kommandozeile oder PowerShell und gib z. B. die folgenden Kommandos ein:

Umschalten der Java-Version in der PowerShell
Umschalten der Java-Version in der PowerShell

Wenn eines der Kommandos nicht die erwartete Java-Version aktiviert, dann prüfe bitte, ob der Pfad in der javaX.bat– bzw. javaX.ps1-Datei dem Installationspfad der zu aktivierenden Java-Version entspricht.

Temporäre und permanente Änderungen der Java-Version

Die Kommandos wirken sich zunächst nur auf die aktuell geöffnete Kommandozeile oder PowerShell aus. Sobald du eine andere Kommandozeile/PowerShell öffnest, ist wieder die in Schritt 2 festgelegte Standard-Version aktiv (Java 24, wenn du nichts geändert hast).

Wenn du die Java-Version permanent ändern möchtest, füge zu dem entsprechenden Kommando einfach den Parameter „perm“ hinzu, z. B.

java24 perm

Achtung: Um die Java-Version permanent zu setzen, musst du die Kommandozeile bzw. die PowerShell als Administrator öffnen. Ansonsten bekommst du die Fehlermeldung „ERROR: Access to the registry path is denied.“

Was du als nächstes tun solltest…

Ich hoffe, dass du der Anleitung gut folgen konntest und dass die Kommandos bei dir funktionieren.

Jetzt würde ich gerne von dir hören:

Konntest du den Schritten gut folgen – oder hast du noch offene Fragen?

So oder so, lass es mich wissen, indem du unten einen Kommentar hinterlässt.

Kommentare

30 Kommentare zu „Java-Version ändern unter Windows (aktualisiert für Java 25)“

  1. Avatar von St1mpy
    St1mpy

    Nicer Artikel! Danke Sven! Das werde ich gleich mal ausprobieren.

  2. Avatar von Garry
    Garry

    Danke Sven, super Anleitung. Hat ohne Probleme bei mir funktioniert :)

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Das freut mich sehr :-)

  3. Avatar von Melanie
    Melanie

    Hallo Sven, danke für den Artikel.
    Leider funktionieren bei mir die Skripten nicht und folgende Fehlermeldung tritt auf, wenn ich z.B. den Befehl „java11“ für das Umschalten auf java11 eingebe:

    C:\Users\XXX>java11
    Der Befehl „java11“ ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

    Folgende Umgebungsvariablen hab ich bereits hinzufügt:
    JAVA_HOME –> C:\Program Files\Java\jdk-11.0.6
    %JAVA_HOME%\bin –> %JAVA_HOME%\bin

    Und den Pfad innerhalb des Skripts habe ich natürlich auch entsprechend meiner Java-Installation angepasst.

    Danke für die Hilfe im Voraus!

    LG Melanie

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hallo Melanie, es sieht so aus, als hättest Du den Pfad *zu* den Skripten nicht zu Deiner „Path“-Systemvariable hinzugefügt. Schau dazu noch einmal in „Schritt 4: Füge das Skript-Verzeichnis zum Pfad hinzu“.

      Oder … Du hast noch einen alten Command Prompt auf? Dann musst Du einen neuen öffnen. Die Änderungen der Umgebungsvariablen sind nur in neu geöffneten Fenstern wirksam.

  4. Avatar von Christian Baumann

    Hi,

    toller Artikel, vielen Dank dafür!

    Ich hab ein Repository (https://github.com/christianbaumann/change-java-version) erstellt, und zwei Veränderungen vorgenommen:
    * Ich nutze gsudo (https://github.com/gerardog/gsudo), damit setx mit Adminrechten ausführt wird.
    * Am Ende des Scripts rufe ich refreshenv auf, damit in der Shell die Umgebungsvariablen aktualisiert werden.

    Nochmals danke!

    Viele Grüße,
    Christian

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hallo Christian,

      vielen Dank für Deinen Kommentar und die Verbesserungsvorschläge!

      Damit „refreshenv“ verfübar ist, muss übrigens auch noch Chocolatey installiert sein.

      Viele Grüße
      Sven

      1. Avatar von Christian

        Oh, mir war nicht bewusst, dass „refreshenv“ mit chocolatey kommt… :-o
        Danke für den Hinweis, werde ich in der readme ergänzen

  5. Avatar von .
    .

    Toller Artikel! Hilft mir sehr weiter, vielen Dank :D

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Sehr gerne. Freut mich, dass ich helfen konnte :)

  6. Avatar von Jörg
    Jörg

    Hallo…

    Dein Ansatz ist prima, ich habe aber ein etwas schwierigeres Problemchen.
    Ich möchte einen Switcher schreiben der automatisch die Installierten java Versionen erkennt und diese als Menü anbietet.
    Ich finde nur keinen sinnvollen Ansatz, wie ich die Installationen finden kann.
    Außer Grep-like die gesamte Platte zu durchsuchen.
    Hat hier jemand vielleicht eine Idee?

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hi Jörg,

      alle installierten Programme sind in der Registry unter folgendem Key gespeichert:

      Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall

      In der PowerShell kannst Du den z. B. dem folgenden Kommando auslesen:

      Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*

      Damit müsste sich doch was bauen lassen!

      VG Sven

  7. Avatar von Totto
    Totto

    Irgendwie klappt das nicht mit dem Umschalten auf eine andere Java-Version. Ich möchte zwischen Java 16.0.1/Java 17.0.2 wechseln können.

    Unter den Systemvariablen habe ich folgendes eingetragen:
    JAVA_HOME = C:\Program Files\Java\jdk-17.0.2

    unter Path:
    %JAVA_HOME%\bin

    sowie unter Path:
    C:\Program Files\Java\scripts

    Die *.bat habe ich entsprechend angepasst.

    Im cmd läuft aktuell lt. Abfrage 17.0.2 -> gebe java16 (Java 16 activated.) ein und bekomme nach Abfrage 16.0.1 angezeigt.

    Jetzt schließe ich cmd und öffne es erneut. Mit der Abfrage „java -version“ müsste doch nach meinem Verständnis 16.0.1 angezeigt werden? Das tut es aber nicht. Es wird wieder die 17.0.2 angezeigt und diese scheint dann auch weiterhin zu laufen. Wo könnte mein Fehler liegen?

    Hier mal der Inhalt der java16.bat:
    @echo off
    set JAVA_HOME=C:\Program Files\Java\jdk-16.0.1
    set Path=%JAVA_HOME%\bin;%Path%
    echo Java 16 activated.

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hallo Totto,

      schau Dir mal das letzte Kapitel, „Temporäre, permanente und systemweite Änderungen der Java-Version“ an:

      * Das Kommando „java16“ aktiviert Java 16 nur für das aktuelle cmd-Fenster. Es ist also völlig normal, dass in einem neuen cmd wieder Java 17 aktiv ist.

      * Um Java 16 für Deinen User zum Standard zu machen (so dass es auch für ein neues cmd aktiv ist), musst Du „java16-user“ aufrufen.

      * Um Java 16 systemweit für alle User zum Standard zu machen, musst Du „java16-system“ aufrufen.

      Viele Grüße
      Sven

      1. Avatar von Sven Woltmann
        Sven Woltmann

        Ich habe eine neue Version der Skripte hochgeladen. Statt „java{version}-user“ und „java{version}-system“ muss nun „java{version} perm“ aufgerufen werden, um die Version permanent zu ändern.

  8. Avatar von Dirk
    Dirk

    Wenn ich mich nicht irre, würde die PATH ENV aber bei jedem Wechsel des JDK länger werden!? Interessant wäre eine Lösung, die nach dem Setzen von JAVA_HOME die PATH Variable nach der bisher gesetzten JAVA_HOME durchsucht und diesen Wert mit der neune ersetzt.

    Ich schaffe es leider nicht ganz, mein Skript zu vervollständigen. Aktuell gebe ich ein Menü aus, das alle „installierten“ JDKs auflistet. (Dazu gebe ich bislang im Skript das Verzeichnis an, in dem die JDKs liegen.) Ich möchte nun, dass nach Auswahl des zu setzenden JDKs JAVA_HOME aktualisiert wird und auch die PATH Variable.
    Die Testausgaben am Ende des Skripts sollen den Erfolg wiedergeben, allerdings sind in der PATH Variablen dann mehrere Java-Versionen und „java -version“ liefert immer das bisherige JDK. mvn –version hingegen zeigt das neu ausgewählte JDK (JAVA_HOME) an.
    Das Skript (noch etwas „Kraut und Rüben…“):

    @echo off
    echo Current Java Version is %JAVA_HOME%
    setlocal enableDelayedExpansion
    SET PT=“C:\develop\lang\Java“
    cd %PT%
    ::build „array“ of folders
    set folderCnt=0
    for /f „eol=: delims=“ %%F in (‚dir /b /ad *‘) do (
    set /a folderCnt+=1
    set „folder!folderCnt!=%%F“
    )

    ::print menu
    for /l %%N in (1 1 %folderCnt%) do echo %%N – !folder%%N!
    echo(

    :get selection
    rem set $line=%path%
    rem set $line=%$line: =#%
    rem set $line=%$line:;= %
    rem set selection=
    set /p „selection=Auswahl, um JAVA_HOME and PATH zu setzen: “
    echo Auswahl: %selection% – !folder%selection%!

    rem for %%a in (%$line%) do echo %%a | find /i %JAVA_HOME% || set $newpath=!$newpath!;%%a
    rem set $newpath=!$newpath:#= !
    rem echo set path=!$newpath:~1!
    cd %PT%\!folder%selection%!
    echo %cd%
    rem ( endlocal & rem return
    (
    endlocal & Set jdk=%cd%
    )

    echo jdk: %jdk%

    set old_java_home=%JAVA_HOME%
    echo old_java_home is %old_java_home%

    echo Setting JAVA_HOME…
    REM /M Specifies that the variable should be set in the system wide (HKEY_LOCAL_MACHINE) environment.
    REM The default is to set the variable under the HKEY_CURRENT_USER environment.
    SETX /m JAVA_HOME „%jdk%“
    SET JAVA_HOME=%jdk%
    SETX JAVA_HOME „%JAVA_HOME%“
    rem echo %JAVA_HOME%
    rem echo setting PATH
    rem setx /M PATH %JAVA_HOME%\bin;%PATH%
    echo.
    echo Neu: %JAVA_HOME%
    echo Ersetzte %old_java_home% mit %jdk% in PATH…
    call setx /m path „%%old_java_home:“%jdk%\bin“=%%“

    rem Testausgaben
    echo.
    echo Updated PATH:
    echo %PATH%
    echo.
    echo Display java version
    java -version
    echo ——————–
    mvn –version

    1. Avatar von Dirk
      Dirk

      Kommandozeilenausgabe:

      setjdk.bat
      Current Java Version is C:\develop\lang\Java\openjdk-11+28
      1 – jdk-11.0.14.101
      2 – openjdk-1.8.0
      3 – openjdk-11+28
      4 – openjdk-11.0.2
      5 – rh_openjdk_1.8.0_232-3

      Auswahl, um JAVA_HOME and PATH zu setzen: 5
      Auswahl: 5 – rh_openjdk_1.8.0_232-3
      C:\develop\lang\Java\rh_openjdk_1.8.0_232-3
      jdk: C:\develop\lang\Java\rh_openjdk_1.8.0_232-3
      old_java_home is C:\develop\lang\Java\openjdk-11+28
      Setting JAVA_HOME…
      FEHLER: Der Zugriff auf den Registrierungspfad wurde verweigert.

      ERFOLGREICH: Angegebener Wert wurde gespeichert.

      Neu: C:\develop\lang\Java\rh_openjdk_1.8.0_232-3
      Ersetzte C:\develop\lang\Java\openjdk-11+28 mit C:\develop\lang\Java\rh_openjdk_1.8.0_232-3 in PATH…
      FEHLER: Der Zugriff auf den Registrierungspfad wurde verweigert.

      Updated PATH:
      C:\develop\lang\Java\jdk-11.0.14.101\bin;C:\develop\Oracle\21c\dbhomeXE\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Windows\SysWOW64\Empirum;C:\Program Files\T-Systems\Global Remote;C:\Program Files (x86)\Sennheiser\SoftphoneSDK\;C:\Program Files (x86)\PuTTY\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\develop\lang\Java\openjdk-1.8.0;C:\develop\Apache\maven-3.6.2\bin

      Display java version
      openjdk version „11.0.14.1“ 2022-02-08
      OpenJDK Runtime Environment Temurin-11.0.14.1+1 (build 11.0.14.1+1)
      OpenJDK 64-Bit Server VM Temurin-11.0.14.1+1 (build 11.0.14.1+1, mixed mode)
      ——————–
      Apache Maven 3.6.2 (40f52333136460af0dc0d7232c0dc0bcf0d9e117; 2019-08-27T17:06:16+02:00)
      Maven home: C:\develop\Apache\maven-3.6.2\bin\..
      Java version: 1.8.0_232, vendor: Oracle Corporation, runtime: C:\develop\lang\Java\rh_openjdk_1.8.0_232-3\jre
      Default locale: de_DE, platform encoding: Cp1252
      OS name: „windows 10“, version: „10.0“, arch: „amd64“, family: „windows“

    2. Avatar von Sven Woltmann
      Sven Woltmann

      Hallo Dirk,

      ja PATH wird länger, allerdings nur im aktuellen Kommandofenster. Sobald du ein neues öffnest, hast du wieder nur einen Java-Eintrag auf dem PATH. Das steht so auch am Ende von Schritt 3.

      Viele Grüße
      Sven

  9. Avatar von Alexander Düthorn
    Alexander Düthorn

    Hallo Sven, ganz große Klasse die Anleitung! Was habe ich mich nicht immer herumgeärgert, um verschiedene Java-Versionen verwenden zu können – wenn es überhaupt geklappt hat. Die Anleitung hat mir wirklich gerade ein Lächeln auf die Lippen gezaubert, da ich nun eine Anwendung problemlos installieren konnte, die noch Java8 benötigt. Vielen, vielen Dank!

  10. Avatar von StrictArtist166
    StrictArtist166

    Habe leider auch ein Problem. Wenn ich den Befehl für Java 8 ausführe, bekomme ich folgenden Fehler:

    C:\Users\eagle>java8
    Der Befehl „java8“ ist entweder falsch geschrieben oder
    konnte nicht gefunden werden.

    Ich habe das komplette Tutorial 3 mal Wiederholt und andere Kommentare gelesen. Doch leider hilft es nicht. Auch Schritt 4 nicht. Denn es sieht bei mir so aus wie oben. Hat jemand Ideen, wo der Fehler sein könnte?

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hi, das kann nur daran liegen, dass das scripts-Verzeichnis nicht auf dem Pfad liegt.

      Gib bitte einmal folgendes Kommando ein:

      echo %path%

      Dort sollte das scripts-Verzeichnis, das Du in Schritt 4 hinzugefügt hast, mit aufgelistet sein. Wenn ja und wenn in diesem Ordner die java8.bat-Datei liegt, dann muss es funktionieren. Wenn nicht, dann schau noch mal unter Schritt 4 nach.

    2. Avatar von Sven Woltmann
      Sven Woltmann

      Du kannst mir auch gerne die Antwort des „echo %path%“-Kommandos schicken, dann schau ich da einmal drauf.

  11. Avatar von Bognár Péter
    Bognár Péter

    Danke Schön. Das funktioniert.
    aus Ungarn.

  12. Avatar von Aman
    Aman

    Super. Vielen Dank für die Anleitung. Macht das Leben leichter.
    Ich habe nur ein Problem mit PowerShall. Es funktioniert dort einfach nicht, ohne Fehlermeldung. Mit cmd alles ok. Hast du eine Idee warum es unter PS nicht funktioniert?

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hallo Aman,

      ich habe eine neue Version der Skripte hochgeladen, die nun auch PowerShell-Versionen (.ps1) enthalten.

      Eine weitere Änderung: Statt „java{version}-user“ und „java{version}-system“ muss nun „java{version} perm“ aufgerufen werden, um die Version permanent zu ändern.

      Viele Grüße
      Sven

  13. Avatar von MickeyMiner
    MickeyMiner

    Windows 10 does not allow running random PS scripts. You have to add something like

    Unblock-file „C:\Program Files\Java\switch\java17.ps1“

    for every ps1 file

    1. Avatar von Sven Woltmann
      Sven Woltmann

      That’s interesting. I never had to do that, maybe your security settings are different.

  14. Avatar von Tim Franken
    Tim Franken

    Vielen dank für deinen Artikel!
    Was ich zum umswitchen verschiedener Java-Installationen empfehlen kann ist „sdkman“ (https://sdkman.io/).
    Unter Windows auch installierbar mit Chocolatey. Mittels „sdk install java 21-tem“ können dann Java-Versionen installiert werden (vollständige Liste mit „sdk list java“). Ein paar Aliase in die .bashrc (alias java21=sdk use java 21-tem) und man kann in jeder shell für diese eine Shell die Java-installation setzen ( einfach abfeuern java21 ):-)

    1. Avatar von Sven Woltmann
      Sven Woltmann

      Hallo Tim,

      danke für Deinen Hinweis!
      Genau so wie von Dir beschrieben mache ich es im Windows Subsystem for Linux :-)

      Viele Grüße
      Sven

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert