Windows下配置JDK环境变量,CMD命令行的Java版本对不上问题及原因

问题经过

新装了JDK-17的包,按照流程修改了环境变量的Path,并且添加了JAVA_HOME(值为JDK-17安装的路径),为了以后修改版本方便,我直接删除了系统变量Path里JDK-17安装时自动配置的C:\Program Files\Common Files\Oracle\Java\javapath,改成了%JAVA_HOME%\bin。然后测试的时候打开CMD,验证javac.exe时没出现问题:

在这里插入图片描述

但验证java的时候问题就来了:

在这里插入图片描述
我当时的状态是直接???,安装个17.0.7版本直接变成1.8.0版本!为了解决问题,我先是系统环境变量和用户的PATH,以及可能的JAVA_HOME;CLASS_PATH路径,均未找到与JDK冲突的同名环境变量,重启了系统也无法成功。查询网上相关问题发现,可能是之前安装了JDK老版本,残留在system32文件夹下,然后我找遍了system32文件夹,也没找到任何与Java相关的东西,后来没办法才认真一个个找了所有环境变量,才终于发现:

在这里插入图片描述

打开一看,果然坑爹的SPSS居然自带JRE运行环境!!!当时为了参加数学建模比赛才下载的(也没怎么用),没想到害我无法成功运行JDK!

在这里插入图片描述

总结原因

  1. 可以看到,SPSS是Java运行环境,里面只有java.exe,没有javac.exe,这也正是我运行javac.exe版本成功,但java.exe却失败的原因。
  2. 在环境变量中,对于普通变量而言,用户变量的优先级是大于系统变量的。但是!!!只有PATH变量例外!它是系统变量优先于用户变量!并且按列表顺序由上到下检索,我先安装了SPSS,再安装了JDK-17,并且我只修改了用户变量,后面即使添加了%JAVA_HOME%\bin到系统变量的PATH里,但由于从上往下顺序检索,优先找到SPSS的JRE路径运行java.exe

解决办法

  1. 因为我决定不用SPSS软件了(没有数据统计方面的需求了),又因为这破软件害我浪费几十分钟,一狠心就直接卸载了!环境变量E:\Program Files\IBM\SPSS\Statistics\25\JRE\bin也直接删除掉,再次运行,果然成功:在这里插入图片描述

  2. 如果是还有使用SPSS的需求的话,那么就先把JDK-17的路径的环境变量向上移,使其优先级提高,当需要用SPSS的时候,在让SPSS的优先级更高,也能解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值