Java - 怎么通过环境变量来切换jdk版本
问题与分析
我在本地安装了1.7和1.8两个版本的jdk,此时我的JAVA_HOME环境变量配置的是jdk1.8,在cmd窗口输入java -version
发现报错如下:
C:\Users\Lewis>java -version
Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.7' is required.
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
接着输入javac -version
则是正常:
C:\Users\Lewis>javac -version
javac 1.8.0_191
javac命令能正常执行, 说明我配置的CLASSPATH变量和JAVA_HOME变量正确。而java命令报错,则说明PATH变量有问题。cmd窗口在执行命令时会去PATH变量的值里寻找路径,当找到对应的路径后就不会再继续查找下去。
所以我们应该把java相关的路径放到PATH变量值的最前面,需要注意的是,如果你安装了Oracle,你会发现Oracle的环境变量会直接排到最前面,也就是说,这时候会优先去Oracle指定的目录下寻找java的命令。
但只是将java路径放置到最前面还是不够的,因为WINDOW本身系统SYSTEM32里面的环境变量加载等级要优先于用户设置的环境变量,所以我们还需要将C:\Windows\System32
目录下的java.exe、javaw.exe、javaws.exe
三个程序删掉或者重命名才行。
解决方案
- 将PATH环境变量的变量值里的java路径放置到最前面;
- 将
C:\Windows\System32
目录下的java.exe、javaw.exe、javaws.exe
三个程序删掉或者重命名。
接下来进行测试,会发现java -version
得到了正确的结果:
C:\Users\Lewis>java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
接着将JAVA_HOME改为jdk1.7的目录,再一次测试java和javac命令,都能得到正确的结果。
参考链接
Java - 怎么通过环境变量来切换jdk版本的更多相关文章
- maven 配置环境变量后报错jdk版本不符
不需要再cmd 输入java -version,因为环境变量里配置的不一定是cmd显示版本,直接看环境变量改成maven要求的jdk版本即可.
- 切换JDK版本时修改JAVA_HOME环境变量不生效(转)
当电脑上存在多个版本的JDK时,可能 会遇到想切换版本时无论你如何改JAVA_HOME的路径 进入cmd java -version 都无法得到最新设置的JDK版本 如果遇到类似以下信息 Regist ...
- Java SE 简介 & 环境变量的配置
Java SE 简介 & 环境变量的配置 一.Java 技术的三个方向 Java 技术分为三个方向 javaSE( Java Platform Standard Edition 标准版)用来开 ...
- 深入理解Java中配置环境变量
深入理解Java中配置环境变量 配置的目的: 本来只在安装JDK的bin目下能运行java.exe,javac.exe,jar.exe,javadoc.exe等Java开发工具包命令,我们现在想让在所 ...
- 一文彻底搞懂Java中的环境变量
一文搞懂Java环境变量 记得刚接触Java,第一件事就是配环境变量,作为一个初学者,只知道环境变量怎样配,在加上各种IDE使我们能方便的开发,而忽略了其本质的东西,只知其然不知其所以然,随着不断的深 ...
- Python Java 快速配置环境变量(Path)
Python Java 快速配置环境变量(Path) 最近系统被重置,清空了C盘中的program等文件夹以及初始化了环境变量. 通常环境下,在windows环境中我们都会打开"环境变量&q ...
- java基础知识--环境变量配置
说到java,大家应该都了解:J2SE基础.J2ME嵌入式.J2EE延伸的内容,而我们平时接触和所谈大部分都是J2EE企业级应用开发. 作为开发者,使用java之前,必须安装java开发环境,配置ja ...
- 安装java后的环境变量配置
安装java后的环境变量配置- 自定义安装目录可能会带来一些烦恼,配置环境变量可能很难找对目录,所以倒不如干脆就用默认的安装目录,记住它,安装完java之后去到那个路径把路径复制, 然后进行环境变量配 ...
- 切换JDK版本quick
最近遇到一个小问题,同时做两个项目,jdk版本一个是5,一个是6,我也去网上找了找方法,但是感觉不是特别好用,最后自己通过一些环境变量设置的技巧和一些批处理命令来使得这件事情只需要双击,输入一个数字回 ...
随机推荐
- ArcGIS10和ArcGIS10.1关于AO Licence初始化的问题
两个版本主要是esriLicenseProductCode.esriLicenseProductCodeArcInfo和esriLicenseProductCode.esriLicenseProduc ...
- Latex强制图片位置
经常使用选项[htbp]是浮动格式: 『h』当前位置.将图形放置在正文文本中给出该图形环境的地方. 假设本页所剩的页面不够.这一參数将不起作用. 『t』顶部.将图形放置在页面的顶部. 『b』底部.将图 ...
- Flyweight Pattern
1.Flyweight 模式以共享的方式高效的支持大量的细粒度对象,对象分为内部状态.外部状态.将可以被共享的状态作为内部状态存储在对象中,而外部状态在适当的时候作为参数传递给对象. 当以下所有的条件 ...
- UIView封装动画--iOS 利用系统提供方法来做弹性运动
iOS 利用系统提供方法来做弹性运动 /*创建弹性动画 damping:阻尼,范围0-1,阻尼越接近于0,弹性效果越明显 velocity:弹性复位的速度 */ [UIView animateWith ...
- Dockder的CS模式:
Docker的守护进程一直运行, yw1989@ubuntu:~$ ps -ef | grep docker : 就是docxker的守护进程 root : ? :: /usr/bin/dockerd ...
- chrome最小字体12px
http://www.mamicode.com/info-detail-512021.html http://www.divcss5.com/wenji/w738.shtml
- CSU - 1529 Equator —— DP 最大连续和子序列
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1529 题解: 一个加强版的最大连续和子序列,序列可以从末尾元素转到首元素. 分两种情 ...
- {{badmatch, {error, eexist}}
今天在编译cowboy工程在resolve release build时提示编译错误:{{badmatch, {error, eexist}} 后经调查可能是因为rebar的bug导致的,可是删除_b ...
- PIL 安装及使用
我ubunto虚拟机自带的是python2.7,好像PIL也只支持到2.7. PIL包的安装 Debian/Ubunto Linux下直接安装: sudo apt-get install python ...
- CentOS7.0安装Ceph(jewel)及以上版本
背景 由于docker的Ceph插件rexray对Ceph版本有一定的要求,当Ceph版本为hammer (0.94.10)时,rexray无法成功创建rbd设备.CentOS 7及以上版本,默认安装 ...