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相互切换相关推荐
- java中jdk1.8,做forEach,需要把外面的变量赋值如int,long,boolean,需要外面定义原子类型的Atomic类型,AtomicBoolean,AtomicInteger
2022-01-05 星期三 1414 by:enAn java中jdk1.8,做forEach,需要把外面的变量赋值如int,long,boolean,需要外面定义原子类型的Atomic,如:Ato ...
- ar8031网卡中的光口和电口相互切换
经过一段时间的奋斗,实现了ar8031网卡的光口和电口相互切换.其中的几个关键概念需要厘清.光口如果是SFP的1000M模块需要注意,一定只能是1000M模式.因为这个问题卡了一段时间.不过因为这些问 ...
- java中磁盘和内存的相互,Java:有没有磁盘和内存一样快的情况?
我正在写一些代码来访问inverted index. 我有两个可互换的类,它们对索引执行读操作.一个从磁盘读取索引,缓冲其中的一部分.另一个将索引完全加载到内存中,作为byte [] [](索引大小约 ...
- 【JDK】如何实现jdk1.8与jdk11环境的相互切换
最近自己一直在使用的主机快要过期了,公司给换了笔记本,因为不同的项目会使用到不同的 JDK 环境,因此,准备在笔记本上配置下可自由切换的 JDK 环境,在此记录一下. 1.下载和安装JDK1.8和JD ...
- Java中Socket通信-客户端与服务端相互传输对象数据
场景 Java中Socket通信-服务端和客户端双向传输字符串实现: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1084885 ...
- java中如何实现多语言切换
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...
- 华为p9总是显示切换服务器中,原来华为手机是有双系统模式的,保护个人隐私,一部手机相互切换!...
原标题:原来华为手机是有双系统模式的,保护个人隐私,一部手机相互切换! 在生活中我们都会比较注意自己的隐私,尤其是手机中的一些个人消息照片等,所以我们轻易不会将手机借给他人,但是也不妨有例外的时候,想 ...
- java中类型的相互转化_Java中的数据类型及相互转换方法
本文主要讲解两个部分: 一.Java中的数据类型有哪些? 二.数字类型和字符串类型相互转换的方法? 一.Java中的数据类型有哪些: Java中的数据类型有:基本数据类型和引用数据类型: 基本数据类型 ...
- Java中的数据类型及相互转换方法
本文主要讲解两个部分: 一.Java中的数据类型有哪些? 二.数字类型和字符串类型相互转换的方法? 一.Java中的数据类型有哪些: Java中的数据类型有:基本数据类型和引用数据类型: 基本数据类型 ...
最新文章
- python展示_python展示ppt
- BugkuCTF-Misc:爆照(08067CTF)
- 应用程序窗口hwnd初始化_Golang OpenGL 跨平台图形程序开发(2)你好,窗口
- 安卓加载mysql数据到列表里_Android如何从数据库中加载海量数据
- 27.Qt操作sqlite3数据库
- 微信小程序 页面如何自动滚动到底部
- Python环境搭建之OpenCV(转载)
- 一键杀死最近打开APP
- pca百分比取多少比较好_欧式家具沙发价格是多少?沙发怎么护理会比较好?
- 计算机access基础操作,计算机基础--ACCESS-要求与操作步骤.pdf
- 苹果个人开发者账号如何升级成公司账号
- StringUtil详解
- Wind的实时行情API使用
- 中英文论文写作指导第三部分(实验、材料和方法部分)
- 华硕顽石四代自主扩展内存条图解
- linux nano编译器_Nano 编辑器可以做些什么?
- 支付宝20积分兑换15天会员
- 机器人RobotCali数据集解读
- Real-time signal
- 初试401 英语86分上岸苏州大学经验分享
热门文章
- adb:failed to install app.apk Failure [INSTALL_FAILED_VERSION_DOWNGRADE: Package Verification Result
- 青岛科技大学计算机专硕拟录取分数,青岛科技大学2018年硕士研究生第一批拟录取名单公示...
- android 开发社区
- 要命啦!Word中快速录入大全,内含快捷键小技巧,快来一起学习!
- vue js 复制div区域内容
- fleaphp 的好教程下载地址
- SpringBoot新项目配置
- 杭中国高铁“走出去”的意义
- Impala 三大组件:Impala Daemon, Impala Statestore, Impala Catelog
- 微信小程序----App生命周期