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

  1. 下载

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

  2. 安装

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

  1. 配置环境变量

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

(1)新建环境变量:

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

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

  1. 版本切换

    (1)手动切换:

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

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

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

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

(2)脚本自动切换:

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

bash 复制代码
@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. 补充

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

bash 复制代码
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
)

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

所以,最终脚本内容为:

bash 复制代码
@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.

欢迎指正!!!!!

相关推荐
Falling427 分钟前
使用 CNB 构建并部署maven项目
后端
程序员小假17 分钟前
我们来讲一讲 ConcurrentHashMap
后端
爱上语文25 分钟前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端
萧曵 丶34 分钟前
Rust 中的返回类型
开发语言·后端·rust
高兴达2 小时前
Spring boot入门工程
java·spring boot·后端
到账一个亿4 小时前
后端树形结构
后端
武子康4 小时前
大数据-31 ZooKeeper 内部原理 Leader选举 ZAB协议
大数据·后端·zookeeper
我是哪吒4 小时前
分布式微服务系统架构第155集:JavaPlus技术文档平台日更-Java线程池实现原理
后端·面试·github
代码老y4 小时前
Spring Boot + 本地部署大模型实现:安全性与可靠性保障
spring boot·后端·bootstrap