完美解决Windows10下-更换JDK环境变量后,在cmd下执行仍java -version然出现原来版本的JDK的问题

一、错误场景预演

本人欲将 JDK 1.8 通过安装包的方式升级为 JDK 22。

  • 本地旧版本:1.8.0_221
  • 预升级版本:22.0.1

1.1、查看本地旧版本

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

java -version

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

1.2、java -version 不变问题产生

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

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

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

2.1、下载并解压目标 JDK

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

2.2、配置 Java 环境变量

  • JAVA_HOME 变量指向 JDK 根目录,即 bin 目录上一级。
  • P
<think> 我们面对的问题是:在Windows系统中,cmd执行java -version能显示JDK版本,但环境变量未配置JAVA_HOME等属性,需要查找JDK的位置。 分析:由于java -version能正常显示版本,说明Java命令已经在某个路径下,并且该路径已经包含在系统的PATH环境变量中。我们可以通过以下步骤来查找JDK的安装位置。 步骤: 1. 在cmd中,我们可以使用`where java`命令来查找java.exe的路径。因为java命令是JDK的一部分,通常位于JDK安装目录下的bin文件夹中。 2. 找到java.exe的路径后,我们可以通过该路径向上回溯到bin的父目录,即JDK的安装目录。 具体操作: 1. 打开cmd(按Win+R,输入cmd后回车)。 2. 输入命令:`where java` 这个命令会列出所有名为java.exe的路径。通常,如果有多个JDK安装,可能会列出多个路径,但我们可以根据常用情况选择第一个(最上面的)或者根据我们正在使用的版本来确定。 3. 从输出的路径中,我们可以找到类似这样的路径:`C:\Program Files\Java\jdk1.8.0_102\bin\java.exe` 那么,JDK的安装目录就是`C:\Program Files\Java\jdk1.8.0_102`。 注意:有时候,我们可能安装的是JRE,而不是JDK。但是,如果之前我们是通过安装JDK得到的java命令,那么路径通常是JDK下的jre或者独立的JDK目录。不过,通过`where java`找到的路径,我们去掉末尾的`\bin\java.exe`即可得到JDK(或JRE)的安装目录。 但是,如果我们发现路径是在JDK的jre目录下,例如:`C:\Program Files\Java\jdk1.8.0_102\jre\bin\java.exe`,那么JDK的安装目录就是`C:\Program Files\Java\jdk1.8.0_102`。 所以,我们可以这样操作: - 复制`where java`命令输出的路径(假设第一个路径是我们要的) - 去掉路径中的`\bin\java.exe`部分,剩下的就是JDK的安装目录(或者JRE的安装目录)。 而,我们的目标是找到JDK的安装目录,因为我们需要配置JAVA_HOME(通常指向JDK的根目录)。如果输出的是JRE的路径,那么我们需要根据这个路径推断JDK的位置(因为JDK安装时会同时安装一个JRE,通常JDK目录下有一个jre目录,而独立的JRE则安装在另一个地方)。如果发现路径是在`C:\Program Files\Java\`下,并且路径中包含`jdk`字样,那么直接取前面的部分即可。 如果`where java`输出的路径是独立JRE(例如:`C:\Program Files\Java\jre1.8.0_102\bin\java.exe`),那么说明我们可能没有安装JDK,或者JDK没有在PATH中,而只有JRE。这时,我们需要安装JDK,或者如果已经安装了JDK,那么我们需要找到JDK的安装路径(可能在同一个父目录下,比如`C:\Program Files\Java\jdk1.8.0_102`)。 因此,我们可以这样总结: 1. 使用`where java`命令找到java.exe的路径。 2. 查看该路径,如果路径中包含`jdk`,则去掉`\bin\java.exe`后即为JDK安装目录。 3. 如果路径中只有`jre`,那么我们需要在`C:\Program Files\Java`目录下查看是否有对应的JDK目录(通常版本号一致),或者我们需要重新安装JDK并记住安装路径。 另外,我们还可以通过注册表来查找JDK的安装路径,但步骤相对复杂。这里我们先使用命令行的方式。 示例: 假设我们执行`where java`后得到: C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe C:\Program Files\Java\jdk1.8.0_231\bin\java.exe 这里有两个路径,第一个是Oracle的javapath,它是一个符号链接,我们可以忽略(或者通过第二个路径来确定)。第二个路径明确指向了JDK的bin目录,因此JDK的安装目录是`C:\Program Files\Java\jdk1.8.0_231`。 如果输出只有一个路径,且不是JDK路径(比如是javapath),那么我们可以尝试查看这个符号链接指向的真实路径。在Windows中,我们可以使用`dir`命令来查看符号链接指向,例如: dir "C:\Program Files (x86)\Common Files\Oracle\Java\javapath" 在输出的信息中,会显示这个目录下的文件(包括java.exe)指向的位置。但为了简单,我们通常可以直接在文件管理器中查看属性。 不过,更简单的方法是直接去`C:\Program Files\Java`和`C:\Program Files (x86)\Java`目录下查看是否存在JDK目录。 因此,最终步骤: 1. 打开cmd,输入`where java`,记录输出的路径。 2. 分析路径,去掉末尾的`\bin\java.exe`,得到JDK(或JRE)的安装目录。 3. 如果得到的目录是JRE(目录名中有jre),则检查同一父目录下是否有相同版本号的JDK目录(例如,如果JRE路径是`C:\Program Files\Java\jre1.8.0_231`,那么检查`C:\Program Files\Java`下是否有`jdk1.8.0_231`目录)。 4. 如果未找到,可以尝试在文件资源管理器中浏览`C:\Program Files\Java`和`C:\Program Files (x86)\Java`目录。 另外,我们也可以使用`wmic`命令来查找,但此命令在部分Windows版本中可能已被弃用。我们可以尝试: wmic product where "name like '%%Java%%'" get name,version 但是,这个命令可能会列出所有Java相关的产品,包括JRE和JDK。不过,我们可以通过安装的程序来查找,但并不是最直接的方法。 所以,推荐使用`where java`命令。 最后,我们找到JDK的安装目录后,可以设置JAVA_HOME环境变量,指向该目录。 设置环境变量的步骤(简要): 1. 右键点击“此电脑”->“属性”->“高级系统设置”->“环境变量”。 2. 在系统变量中,点击“新建”,变量名:JAVA_HOME,变量值:JDK的安装目录(例如:C:\Program Files\Java\jdk1.8.0_231)。 3. 后,在系统变量中找到Path变量,双击编辑,新建一条:%JAVA_HOME%\bin 4. 确定保存。 注意:如果之前Path中已经存在其他Java路径(比如指向jre的),可以将其删除,或者确保%JAVA_HOME%\bin在靠前的位置(因为系统按顺序查找)。 这样,我们就完成了JDK位置的查找以及环境变量的配置。 根据引用[1][2][3][4]中的内容,配置JAVA_HOME和PATH是确保Java环境正确配置的关键步骤[^1][^2][^3][^4]。 </think> ### 在Windows系统中查找未配置环境变量JDK位置 若`java -version`能显示版本但未配置`JAVA_HOME`,可通过以下步骤查找JDK安装路径: #### 方法1:通过命令行查找(推荐) 1. **打开CMD** 按 `Win+R` 输入 `cmd` 回车 2. **执行查找命令** ```cmd where java ``` - 输出示例:`C:\Program Files\Java\jdk-17\bin\java.exe` - **JDK路径** = 输出结果中去除末尾的 `\bin\java.exe` (例如:`C:\Program Files\Java\jdk-17`) #### 方法2:通过文件系统搜索 1. 打开文件资源管理器 2. 在搜索栏输入: ```path java.exe ``` 3. 在搜索结果中: - 右键点击 `java.exe` → 选择 **"打开文件所在位置"** - 文件路径通常为:`...\JDK安装目录\bin\java.exe` - 向上返回两级目录即为JDK根目录 #### 方法3:检查注册表(高级) 1. 按 `Win+R` 输入 `regedit` 回车 2. 导航至路径: ```regedit HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit ``` 3. 查看右侧 `CurrentVersion` 值获取版本号 4. 在对应版本号的子项中查看 `JavaHome` 的路径值 #### 验证找到的路径 ```cmd cd 您找到的JDK路径\bin java -version ``` 若正确显示版本号,则路径正确[^1][^3]。 ### 后续配置建议 找到路径后,按引用[1]方法配置: 1. 设置 `JAVA_HOME` = JDK安装路径 2. 在 `Path` 添加 `%JAVA_HOME%\bin` 3. 在 `Path` 添加 `%JAVA_HOME%\jre\bin`(如存在) 4. 新建 `CLASSPATH` = `.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar`[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值