Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总
Java核心架构进阶知识点
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
需要这份系统化的资料的朋友,可以点击这里获取
更新了 JDK 的版本,环境变量也进行了修改,为什么在命令界面输入 java -version 还是显示之前旧版本 JDK 的版本信息呢?可能有人在安装/更新 JDK 时遇到了这样的疑惑,这是什么原因导致的呢?网上的相关攻略找来找去也没能解决问题,而导致此问题出现会有多方面的原因,本文我们对此问题进行归类汇总。
一、错误场景预演
本人欲将 JDK 8 通过压缩包的方式升级为 JDK 17。
- 本地旧版本:1.8.0_251
- 预升级版本:17.0.2
1.1、查看本地旧版本
在配置环境变量之前,首先我们要明确,本地存在旧版本,如果本地没有 Java,也不会出现 java -version 不变的问题,输入命令检查:
java -version
我们可以看到旧版本的信息,具体如下图所示:
1.2、java -version 不变问题产生
在完成 JDK 17 本地解压、配置之后,命令行输入 java -version 仍然显示 1.8.0_251 的版本信息,而非 17.0.2,问题出现。
导致这个问题出现的原因有很多,我们接下来逐一排查。
二、检查新安装 JDK 是否配置正确
2.1、下载并解压目标 JDK
我们将需要安装的目标 JDK 解压到目标文件夹,我的如下图所示:
2.2、配置 Java 环境变量
- JAVA_HOME 变量指向 JDK 根目录,即 bin 目录上一级。
- PATH 变量指向 JDK 的 bin 目录。
通过“浏览目录”的形式分别配置 JAVA_HOME 和 PATH,具体如下图所示:
2.3、注意 PATH 变量顺序
环境变量中配置的 PATH 变量系统是按照先后顺序进行读取的,应将其置于最上方。
顺序存在问题,也会出现 java -version 不改变的情况。其顺序可以通过上图右侧“上移”的按钮改变。
2.4、查看 Java 版本信息
按照常理,这个时候我们可以在命令行输入 java -version 查看新装 Java 的版本信息。
但是如果我们可以看到仍然显示的是之前旧版本的信息,而非新版本信息,我们就要到具体场景中进一步分析出错原因了,具体如下图所示:
三、不同具体错误场景分析
我按照最容易出现的错误场景顺序将其归为以下几类,如果无法解决看下一条即可。
3.1、PATH 变量顺序出错解决方式
这个问题是最常出现的,在 2.3 中我们也提到了。
出错原因:环境变量中配置的 PATH 变量,系统是按照先后顺序进行读取的,系统读取 Java 路径优先级不够,就会仍然显示之前的版本信息。 按照优先级应将其置于最上方。
解决方式:通过右侧“上移”的按钮改变 Java bin 目录的顺序即可,具体如下图所示:
3.2、系统中存在旧版 java.exe 解决方式
出错原因:如果系统盘快捷调用中存在之前的 java.exe,如存在之前 JDK 1.8.0_251 的 java.exe,系统会优先调用,而不会调用最新的 java.exe, 显示的也就是旧版本的 java -version。
解决方式:通过搜索工具检索系统盘(C 盘)中的 java.exe 文件,将含有 java.exe 的文件夹删掉即可,避免其调用旧版本。具体 3 个 java.exe 文件在 Oracle 目录的 javapath 相关目录下,作者本人的如下图所示,将整个 Oracle 目录或 Java 目录删掉即可。
本次面试答案,以及收集到的大厂必问面试题分享:
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录
需要这份系统化的资料的朋友,可以点击这里获取
.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
需要这份系统化的资料的朋友,可以点击这里获取