Skip to content

Instantly share code, notes, and snippets.

@McFoggy
Created September 19, 2018 07:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save McFoggy/0c7385696b1636984194ddd9adbfec88 to your computer and use it in GitHub Desktop.
Save McFoggy/0c7385696b1636984194ddd9adbfec88 to your computer and use it in GitHub Desktop.
java switcher for windows CMD
@ECHO OFF
REM ========================================================
REM
REM This file is a helper to switch to different JDKs
REM It creates a directory symbolic link to %BASE_JDK_HOME%\current
REM the directory '%BASE_JDK_HOME%\current' should be part of your path
REM
REM ========================================================
ECHO.
SET BASE_JDK_HOME=D:\dev\tools\jdks
REM Choices to enter as arguments
SET "CHOICE_8=8"
SET "CHOICE_11=11"
SET "CHOICE_ORACLE_8=oracle-8"
SET "CHOICE_OPENJDK_8=openjdk-8"
SET "CHOICE_ORACLE_11=oracle-11"
SET "CHOICE_OPENJDK_11=openjdk-11"
REM Installed JDKs
SET "ORACLE_8_JDK=oracle-jdk1.8.0_162"
SET "OPENJDK_8_JDK=openjdk-8u172-b11"
SET "ORACLE_11_JDK=oracle-jdk-11+28"
SET "OPENJDK_11_JDK=openjdk-11+28"
if "%~1"=="" (ECHO No java version provided type '%~n0 [/help ^| /? ^| --help]' for more information && ECHO.) && GOTO theEnd
SET "_helpWanted=2"
if "%~1"=="--help" SET _helpWanted=1
if "%~1"=="/help" SET _helpWanted=1
if "%~1"=="/?" SET _helpWanted=1
if %_helpWanted% EQU 1 GOTO showHelp
SET "_switchVersion=2"
if "%1"=="%CHOICE_8%" SET "_switchVersion=1" && SET "_newJDK=%ORACLE_8_JDK%"
if "%1"=="%CHOICE_11%" SET "_switchVersion=1" && SET "_newJDK=%ORACLE_11_JDK%"
if "%1"=="%CHOICE_ORACLE_8%" SET "_switchVersion=1" && SET "_newJDK=%ORACLE_8_JDK%"
if "%1"=="%CHOICE_OPENJDK_8%" SET "_switchVersion=1" && SET "_newJDK=%OPENJDK_8_JDK%"
if "%1"=="%CHOICE_ORACLE_11%" SET "_switchVersion=1" && SET "_newJDK=%ORACLE_1_JDK%"
if "%1"=="%CHOICE_OPENJDK_11%" SET "_switchVersion=1" && SET "_newJDK=%OPENJDK_11_JDK%"
IF %_switchVersion% EQU 1 GOTO switchVersion
ECHO version not recognized, "%~1"
:showHelp
ECHO Use '%~n0 VERSION' to switch the current jdk version
ECHO for example '%~n0 11' to switch to %OPENJDK_11_JDK%
ECHO.
ECHO Available versions
ECHO - %CHOICE_8% : %ORACLE_8_JDK%
ECHO - %CHOICE_11% : %OPENJDK_11_JDK%
ECHO - %CHOICE_ORACLE_8% : %ORACLE_8_JDK%
ECHO - %CHOICE_OPENJDK_8% : %OPENJDK_8_JDK%
ECHO - %CHOICE_ORACLE_11% : %ORACLE_11_JDK%
ECHO - %CHOICE_OPENJDK_11% : %OPENJDK_11_JDK%
ECHO.
GOTO theEnd
:switchVersion
RMDIR %BASE_JDK_HOME%\current
MKLINK /D %BASE_JDK_HOME%\current %BASE_JDK_HOME%\%_newJDK% > nul
ECHO current JDK switched to %BASE_JDK_HOME%\%_newJDK%
ECHO.
:showVersion
java -version
:theEnd
REM cleanup environment variables
SET "CHOICE_8="
SET "CHOICE_11="
SET "CHOICE_ORACLE_8="
SET "CHOICE_OPENJDK_8="
SET "CHOICE_ORACLE_11="
SET "CHOICE_OPENJDK_11="
SET "ORACLE_8_JDK="
SET "OPENJDK_8_JDK="
SET "ORACLE_11_JDK="
SET "OPENJDK_11_JDK="
SET "_switchVersion="
SET "_helpWanted="
SET "_newJDK="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment