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安装多版本并切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用JSON.toJSONString()返回{}的原因

    使用JSON.toJSONString()返回{}的原因

    这篇文章主要介绍了使用JSON.toJSONString()返回{}的原因,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • 注解@Transactional原理分析以及常见的坑

    注解@Transactional原理分析以及常见的坑

    这篇文章主要介绍了注解@Transactional原理分析以及常见的坑,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • Java如何通过线程解决生产者/消费者问题

    Java如何通过线程解决生产者/消费者问题

    这篇文章主要介绍了Java如何通过线程解决生产者/消费者问题,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-10-10
  • mybatis Map查询结果下划线转驼峰的实例

    mybatis Map查询结果下划线转驼峰的实例

    这篇文章主要介绍了mybatis Map查询结果下划线转驼峰的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • springmvc—handlermapping三种映射方式

    springmvc—handlermapping三种映射方式

    这篇文章主要介绍了springmvc—handlermapping三种映射方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • springboot解决java.lang.ArrayStoreException异常

    springboot解决java.lang.ArrayStoreException异常

    这篇文章介绍了springboot解决java.lang.ArrayStoreException异常的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • SpringBoot校园综合管理系统实现流程分步讲解

    SpringBoot校园综合管理系统实现流程分步讲解

    这篇文章主要介绍了SpringBoot+Vue实现校园综合管理系统流程分步讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • maven解决依赖冲突的三种解决方法

    maven解决依赖冲突的三种解决方法

    依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成了包版本冲突,本文主要介绍了maven解决依赖冲突的三种解决方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • SpringBoot web静态资源配置详解

    SpringBoot web静态资源配置详解

    这篇文章主要介绍了SpringBoot web静态资源配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • JDBC连接数据库的方法汇总

    JDBC连接数据库的方法汇总

    这篇文章主要介绍了JDBC连接数据库的方法,结合实例形式总结分析了JDBC连接各种常见数据库的相关实现技巧,需要的朋友可以参考下
    2016-08-08

最新评论