Java - 怎么通过环境变量来切换jdk版本
目录
问题与分析
我在本地安装了1.7和1.8两个版本的jdk,此时我的JAVA_HOME环境变量配置的是jdk1.8,在cmd窗口输入java -version
发现报错如下:
|
|
接着输入javac -version
则是正常:
|
|
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
得到了正确的结果:
|
|
接着将JAVA_HOME改为jdk1.7的目录,再一次测试java和javac命令,都能得到正确的结果。
参考链接
警告
本文最后更新于 November 17, 2018,文中内容可能已过时,请谨慎使用。