Java中jdk1.8和jdk17相互切换实战步骤
前言
之前做Java项目时一直用的是jdk1.8,现在想下载另一个jdk版本17,并且在之后的使用中可以进行相互切换,我将jdk切换时所遇到的问题记录下来并分享出来供大家参考。
1.环境变量中之前已经配置好的jdk1.8。
环境变量配置如下:
步骤1

步骤2

(注:@MAVEN_HOME%\bin;是配置maven时的环境变量,如果没有安装maven就不用管)
步骤3

在cmd中输入java -version为jdk1.8版本:

2.jdk1.8版本到jdk17版本的切换。
jdk17的安装路径,为了方便我是安装在和jdk1.8一样的文件目录下:

步骤1
在环境变量中另外创建两个变量名,分别为JAVA1.8_HOME和JAVA17_HOME,变量值为jdk1.8和jdk17的安装路径。


步骤2
修改JAVA_HOME的变量值为%JAVA17_HOME%,这个值就是之前创建的属于jdk17的变量名。

点击确定后重新打开环境变量配置(若只是点击确定而没有重新打开配置则看不到变化),可以看到当修改完毕后CLASSPATH和PATH的值自动发生了变化,变成了在jdk17下的变量值。
CLASSPATH变量和PATH变量的值:


配置完成后,在cmd中输入java -version查看jdk版本为17:

3.jdk17到jdk1.8的切换。
如果按照正常步骤来的话只需要修改JAVA_HOME的值为JAVA1.8_HOME就可以切换成jdk1.8的环境,修改过程如下:

修改后重新打开环境变量配置,CLASSPATH和PATH的值自动变成了jdk1.8的值:


此时在cmd中输入java -version查看jdk版本却发现jdk版本仍然是jdk17的版本,并没有切换成jdk1.8:

在网上寻找解决方案后,发现需要把系统变量中Path的变量值C:\Program Files\Common Files\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath都删掉,如图所示:

此时在cmd中输入java -version查看jdk版本,发现已经切换到了jdk1.8版本:

最后测试了在删除Path的变量值C:\Program Files\Common Files\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath后再进行上面的第2步操作后又能否切换回jdk17,结果发现可以成功切换成jdk17版本:

总结。
可以看出如果想要切换jdk版本,那就只需要删除系统变量中PATH的值C:\Program Files\Common Files\Oracle\Java\javapath和C:\Program Files (x86)\Common Files\Oracle\Java\javapath,然后修改JAVA_HOME的值就可以随意进行jdk的切换。之前那个没有切换成功的原因我想是因为下载了jdk17后,原来C:\Program Files (x86)\Common Files\Oracle\Java\javapath和C:\Program Files\Common Files\Oracle\Java\javapath中的java.exe、javaw.exe、javaws.exe已经变成了jdk17的版本,即使是修改了环境变量的值也不会切换到jdk1.8,那还不如直接在PATH变量删除这两个变量,而且删除后没有受到什么影响,也能够进行正常切换。希望这篇文章能够帮助到你们,谢谢!
到此这篇关于Java中jdk1.8和jdk17相互切换的文章就介绍到这了,更多相关jdk1.8和jdk17相互切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring cloud Hystrix注解初始化源码过程解读
这篇文章主要为大家介绍了Hystrix初始化部分,我们从源码的角度分析一下@EnableCircuitBreaker以及@HystrixCommand注解的初始化过程,有需要的朋友可以借鉴参考下,希望能够有所帮助2023-12-12
一文详解如何使用Spring MVC实现RESTful API接口
本文主要介绍了如何使用SpringMVC实现RESTful API,包括RESTful的核心概念、设计原则、传参方式比较、SpringMVC实现示例及关键注解说明,还介绍了API测试工具和SpringMVC的匹配机制,强调了在实际开发中保持RESTful风格的一致性和合理设计资源路径的重要性2025-10-10
springboot解决Class path contains multiple 
这篇文章主要介绍了springboot解决Class path contains multiple SLF4J bindings问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07
在Spring中使用Knife4j进行API文档生成与管理的操作方法
Knife4j 是为Java MVC 框架(如Spring Boot、Spring MVC等)集成 Swagger 生成 API 文档的增强解决方案,它基于 Swagger 的核心功能,通过定制化的前端界面和一些额外的特性,本文介绍了在Spring中使用Knife4j进行API文档生成与管理的操作方法,需要的朋友可以参考下2024-12-12
Java Spring ApplicationEvent 代码示例解析
本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、事务绑定、执行顺序),对Java Spring ApplicationEvent概念相关知识感兴趣的朋友一起看看吧2025-06-06


最新评论