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.

欢迎指正!!!!!

相关推荐
蒂法就是我1 小时前
详细说说Spring的IOC机制
java·后端·spring
秋野酱1 小时前
基于javaweb的SpringBoot高校图书馆座位预约系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
HWL56792 小时前
Express项目解决跨域问题
前端·后端·中间件·node.js·express
-曾牛2 小时前
Spring AI 集成 Mistral AI:构建高效多语言对话助手的实战指南
java·人工智能·后端·spring·microsoft·spring ai
shengjk14 小时前
序列化和反序列化:从理论到实践的全方位指南
java·大数据·开发语言·人工智能·后端·ai编程
hie988945 小时前
使用Spring Boot集成Nacos
java·spring boot·后端
源码方舟5 小时前
基于SpringBoot+Vue的房屋租赁管理系统源码包(完整版)开发实战
vue.js·spring boot·后端
景天科技苑5 小时前
【Rust trait特质】如何在Rust中使用trait特质,全面解析与应用实战
开发语言·后端·rust·trait·rust trait·rust特质
Mikey_n6 小时前
Spring Boot 注解详细解析:解锁高效开发的密钥
java·spring boot·后端
Kookoos7 小时前
【实战】基于 ABP vNext 构建高可用 S7 协议采集平台(西门子 PLC 通信全流程)
后端·物联网·c#·.net