jdk同时安装多个版本并自由切换的技巧总结

 更新时间:2025年07月11日 11:05:04   作者:雾海行舟  
在我们开发过程有时候为了了解不同版本jdk的框架源码,这时候我们需要安装不同版本的JDK来满足我们开发的需求,这篇文章主要介绍了jdk同时安装多个版本并自由切换技巧的相关资料,需要的朋友可以参考下

一、安装不同版本的JDK

二、配置环境变量(多版本JDK)

1. 新建版本专用环境变量(用于切换)

  • 操作位置:系统变量 > 新建
    • 变量名JAVA_HOME_1.8 变量值:JDK 8安装路径
    • 变量名JAVA11_HOME_11 变量值:JDK 11安装路径 (其他版本如 JDK 17 同理,命名规则:JAVA_HOME_<版本>) :路径中禁止包含中文或空格 。

2. 设置主切换变量 JAVA_HOME

  • 变量名JAVA_HOME 变量值%JAVA_HOME_17%(默认指向JDK 17,通过修改此值切换版本) 
     

    此变量是动态枢纽,修改其值即可切换JDK版本。

3. 配置 CLASSPATH(可选但建议)

  • 变量名CLASSPATH 变量值
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
  • 注意:开头的 . 表示当前目录,不可省略 

4. 修改 Path 变量

  • 编辑 Path 变量,新增两条(确保在顶部避免冲突):
    %JAVA_HOME%\bin 
    %JAVA_HOME%\jre\bin

  • 关键点
    • 使用 %JAVA_HOME% 引用路径,而非直接写死路径 
    • Win10需分两行添加,避免自动添加引号导致失效 

三、多版本切换与验证

1. 初始验证

打开新CMD窗口(环境变量修改后必须重启CMD) 
java -version # 应显示默认版本(如JDK 8)

2. 切换版本(如切到JDK 11)

  1. 修改主变量 JAVA_HOME 的值:
    • 原值:%JAVA_HOME_8% → 改为:%JAVA_HOME_11%
  2. 重新打开CMD,执行:
    java -version # 应显示默认版本(如JDK 11)

3. 验证其他命令(确保全面生效)

javac -version # 检查编译器版本 java # 查看JVM基础命令是否正常

若仅 java 生效但 javac 失败,需检查 Path 是否包含 %JAVA_HOME%\bin 且无多余引号

❗ 常见问题解决

切换后版本未更新:

  • 确认 JAVA_HOME 值已修改,并重启CMD 
     
  • 删除系统冲突路径(如 C:\Windows\System32\java.exe) 

javac 命令无效:

  • 检查 Path 中 %JAVA_HOME%\bin 是否被其他JDK路径覆盖。
  • 确保变量值无多余分号或引号(Win10易自动添加) 

环境变量优先级冲突:

  • 系统变量 > 用户变量,确保版本变量在系统变量中配置 

通过此方案,只需修改 JAVA_HOME 的指向即可实现多版本无缝切换,适用于开发/测试多版本兼容性场景。若需更高效切换,可参考批处理脚本自动化方案

总结

到此这篇关于jdk同时安装多个版本并自由切换的文章就介绍到这了,更多相关jdk安装多版本并切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Spring整合mybatis注解扫描是否成功的问题

    基于Spring整合mybatis注解扫描是否成功的问题

    这篇文章主要介绍了Spring整合mybatis注解扫描是否成功的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 关于Java反射机制 你需要知道的事情

    关于Java反射机制 你需要知道的事情

    这篇文章主要介绍了Java反射机制的相关内容,涉及了class类的动态加载,获取成员变量、构造函数信息等信息,需要的朋友可以参考下。
    2017-09-09
  • 实例讲解使用Spring通过JPA连接到Db2

    实例讲解使用Spring通过JPA连接到Db2

    这篇文章主要介绍了通过实例讲解使用Spring通过JPA连接到Db2,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来一起学习一下吧
    2019-06-06
  • SpringBoot调用第三方WebService接口的两种方法

    SpringBoot调用第三方WebService接口的两种方法

    本文主要介绍了SpringBoot调用第三方WebService接口的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 浅谈java中Map的用法

    浅谈java中Map的用法

    Map简介:将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。
    2015-09-09
  • Java中数据转换及字符串的“+”操作方法

    Java中数据转换及字符串的“+”操作方法

    本文主要介绍了Java中的数据类型转换,包括隐式转换和强制转换,隐式转换通常用于将范围较小的数据类型转换为范围较大的数据类型,而强制转换则是将范围较大的数据类型转换为范围较小的数据类型,本文介绍Java中数据转换以及字符串的“+”操作,感兴趣的朋友一起看看吧
    2024-10-10
  • Java内部类和匿名内部类的用法说明

    Java内部类和匿名内部类的用法说明

    这篇文章主要介绍了Java内部类和匿名内部类的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • pom文件中${project.basedir}的使用

    pom文件中${project.basedir}的使用

    这篇文章主要介绍了pom文件中${project.basedir}的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringMVC的五大核心组件用法及说明

    SpringMVC的五大核心组件用法及说明

    这篇文章主要介绍了SpringMVC的五大核心组件用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 如何使用Spring Boot实现接口时间戳鉴权

    如何使用Spring Boot实现接口时间戳鉴权

    这篇文章主要为大家详细介绍了如何使用Spring Boot实现接口时间戳鉴权,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴要了解下
    2025-06-06

最新评论