win环境下,同时安装多个版本jdk,并自由切换(jdk8和jdk17为例)

4,890 阅读2分钟
  1. 下载

    进入[Oracle官网](Java Downloads | Oracle),下载需要安装的jdk版本;

  2. 安装

    点击下载好的jdk安装文件,进行安装,这里以jdk8和jdk17为例;安装完成后,在对应安装目录下,可以看到以下文件夹,(注意将两个版本安装到不同的目录);

jdk-8-17.png

  1. 配置环境变量

    此电脑 -> 右键 -> 属性 -> 高级系统设置 -> 环境变量

(1)新建环境变量:

java_home.png

classpath.png

(2)修改环境变量: 找到环境变量Path,点击编辑,加入JAVA_HOME引用

path.png

确定,保存,验证环境变量是否配置成功

version.png

  1. 版本切换

    (1)手动切换:

    修改环境变量中JAVA_HOME的变量值,修改为需要切换的jdk版本的安装路径,如:

    需要修改为jdk8,则修改为:C:\Program Files\Java\jdk1.8.0_212

    需要修改为jdk17,则修改为:C:\Program Files\Java\jdk-17

    确认,保存,验证是否切换成功。

h17.png

v17.png

(2)脚本自动切换:

新建switch_jdk.bat文件,加入以下脚本内容:

@echo off
set /p choice="Enter JDK version (8 or 17): "
if "%choice%"=="8" (
    setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_212" /m
    echo Switched to JDK 8
) else if "%choice%"=="17" (
    setx JAVA_HOME "C:\Program Files\Java\jdk-17" /m
    echo Switched to JDK 17
)
echo Restart CMD or terminals to apply changes.

以管理员身份运行 脚本,输入版本号即可切换。

  1. 注意事项

(1)切换完成后,需要重启或重新打开一个cmd窗口,验证是否切换成功;

(2)一定要以管理员身份运行该脚本,否则切换失败。

  1. 补充

若嫌弃每次都以管理员身份打开太麻烦,则可以在脚本中加入以下代码片段:

net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Requesting administrative privileges...
    powershell -Command "Start-Process cmd -ArgumentList '/c %~f0' -Verb RunAs"
    exit /b
)

作用是,验证当前是否有管理员权限,若没有,则重新以管理员身份打开此脚本。

所以,最终脚本内容为:

@echo off
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo Requesting administrative privileges...
    powershell -Command "Start-Process cmd -ArgumentList '/c %~f0' -Verb RunAs"
    exit /b
)
set /p choice="Enter JDK version (8 or 17): "
if "%choice%"=="8" (
    setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_212" /m
    echo Switched to JDK 8
) else if "%choice%"=="17" (
    setx JAVA_HOME "C:\Program Files\Java\jdk-17" /m
    echo Switched to JDK 17
)
echo Restart CMD or terminals to apply changes.

欢迎指正!!!!!