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

文章目录

前言

更新了 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 目录删掉即可

在这里插入图片描述
注意:java.exe 文件仅考虑存在于系统盘内的,这是旧版本 JDK 的输出文件,其他盘符不考虑。

说明:java.exe 存在于 Oracle 目录的 Java 目录下,作者本人的 java.exe 文件位于C:\Program Files (x86)\Common Files 目录下,也有部分小伙伴的位于 C:\Windows\System32 目录下,通过检索工具如 Everything 查找很方便。

四、问题完美解决

### 将 DeepSeek 集成到 Java 学习网站中的方法 #### 1. 环境准备 在将 DeepSeek 集成到 Java 学习网站之前,需要完成必要的环境准备工作。这包括安装支持的 JDK 版本以及引入所需的依赖项。对于 Java 开发者来说,可以利用专门为 Java 生态设计的 `DeepSeek4J` 框架来简化集成过程[^1]。 #### 2. 使用 DeepSeek4J 实现快速接入 通过 `DeepSeek4J` 提供的简单 API 接口,开发者仅需编写少量代码即可实现模型的功能调用。例如,在 Maven 构建工具中添加如下依赖: ```xml <dependency> <groupId>com.deepseek</groupId> <artifactId>deepseek4j</artifactId> <version>1.0.0</version> </dependency> ``` 随后可以通过以下方式初始化并调用 DeepSeek 的核心功能: ```java import com.deepseek.DeepSeek; public class Main { public static void main(String[] args) { String result = DeepSeek.query("解释一下Java中的多线程"); System.out.println(result); } } ``` 上述代码展示了如何通过单行代码发起查询请求,并获取由 DeepSeek 返回的结果数据。 #### 3. 应用场景扩展 除了基本的文字交互外,还可以进一步探索 DeepSeek 在教育平台上的应用潜力。比如将其嵌入到在线课程答疑模块或者作为智能推荐引擎的一部分,从而提高学生的学习效率和满意度[^2]。 如果有任何疑问关于具体参数调整或高级特性启用方面的问题,则建议查阅官方文档以获得更多指导信息[^3]。 #### 4. 工具链优化 针对特定 IDE 用户群体(如 IntelliJ IDEA),还存在专门定制化的解决方案用于加速整个开发流程。这些方案不仅涵盖了基础的语言选项设定,同时也包含了丰富的插件生态系统支持[^4]。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值