Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

07-10 1156阅读

Java核心架构进阶知识点

面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的

Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

更新了 JDK 的版本,环境变量也进行了修改,为什么在命令界面输入 java -version 还是显示之前旧版本 JDK 的版本信息呢?可能有人在安装/更新 JDK 时遇到了这样的疑惑,这是什么原因导致的呢?网上的相关攻略找来找去也没能解决问题,而导致此问题出现会有多方面的原因,本文我们对此问题进行归类汇总。

Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总


一、错误场景预演

本人欲将 JDK 8 通过压缩包的方式升级为 JDK 17。

  • 本地旧版本:1.8.0_251
  • 预升级版本:17.0.2

    1.1、查看本地旧版本

    在配置环境变量之前,首先我们要明确,本地存在旧版本,如果本地没有 Java,也不会出现 java -version 不变的问题,输入命令检查:

    java -version
    

    我们可以看到旧版本的信息,具体如下图所示:

    Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

    1.2、java -version 不变问题产生

    在完成 JDK 17 本地解压、配置之后,命令行输入 java -version 仍然显示 1.8.0_251 的版本信息,而非 17.0.2,问题出现。

    导致这个问题出现的原因有很多,我们接下来逐一排查。

    二、检查新安装 JDK 是否配置正确

    2.1、下载并解压目标 JDK

    我们将需要安装的目标 JDK 解压到目标文件夹,我的如下图所示:

    Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

    2.2、配置 Java 环境变量

    • JAVA_HOME 变量指向 JDK 根目录,即 bin 目录上一级。
    • PATH 变量指向 JDK 的 bin 目录。

      通过“浏览目录”的形式分别配置 JAVA_HOME 和 PATH,具体如下图所示:

      Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

      Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

      2.3、注意 PATH 变量顺序

      环境变量中配置的 PATH 变量系统是按照先后顺序进行读取的,应将其置于最上方。

      顺序存在问题,也会出现 java -version 不改变的情况。其顺序可以通过上图右侧“上移”的按钮改变。

      2.4、查看 Java 版本信息

      按照常理,这个时候我们可以在命令行输入 java -version 查看新装 Java 的版本信息。

      但是如果我们可以看到仍然显示的是之前旧版本的信息,而非新版本信息,我们就要到具体场景中进一步分析出错原因了,具体如下图所示:

      Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

      三、不同具体错误场景分析

      我按照最容易出现的错误场景顺序将其归为以下几类,如果无法解决看下一条即可。

      3.1、PATH 变量顺序出错解决方式

      这个问题是最常出现的,在 2.3 中我们也提到了。

      出错原因:环境变量中配置的 PATH 变量,系统是按照先后顺序进行读取的,系统读取 Java 路径优先级不够,就会仍然显示之前的版本信息。 按照优先级应将其置于最上方。

      解决方式:通过右侧“上移”的按钮改变 Java bin 目录的顺序即可,具体如下图所示:

      Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

      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 目录删掉即可。

      本次面试答案,以及收集到的大厂必问面试题分享:

      Java 答疑:为什么修改 Java 环境变量之后 java -version 不变?解决方式汇总

      本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

      需要这份系统化的资料的朋友,可以点击这里获取

      .csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**

      需要这份系统化的资料的朋友,可以点击这里获取

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]