java -version ‘java‘ 不是内部或外部命令,也不是可运行的程序; 切换java版本后,java -version还是原java版本问题处理


前言

当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到 path 中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

https://blog.csdn.net/chengyq116/article/details/105900122/

安装教程

  • java8:

https://blog.csdn.net/m0_53623945/article/details/123978985

  • java17:

https://blog.csdn.net/Mortal_ApeBoys/article/details/123610132

一、java -version ‘java’ 不是内部或外部命令,也不是可运行的程序;

注意修改环境变量后,原cmd是不生效的,要重新打开一个cmd

1、检查jdk文件能不能正常运行

  • 找到自己的安装路径,然后进入这个bin目录下。
    在这里插入图片描述
  • 进入bin目录后,在目录这一栏输入cmd然后回车
    在这里插入图片描述
  • 然后输入java -version,看看能不能正常输出版本信息。如果不能,可能是下的东西有问题,建议删了重下一个
    在这里插入图片描述

2、检查环境变量

  • 打开一个cmd窗口,输入echo %path%。检查发现是这个path里面的变量名写错了,没有进行正确转换。修改成正确的变量名就好了。
    在这里插入图片描述
  • 修改后发现变量名对了,但是还是报错。
    在这里插入图片描述
  • 原因可能是环境变量的地方配置错了。系统变量的path没办法读取到用户变量的JAVA_HOME
    解决方案:你可以把他们放在同一个组里面。或者把JAVA_HOME放在系统变量里,%JAVA_HOME%放在用户变量的path里。
    在这里插入图片描述

二、切换java版本后,java -version 还是输出原java版本的问题处理

1、原因

  • 没有重新打开cmd,重新打开一个就好了
  • 写错了或者是本身就没办法运行,可以参考一中的方法检查一下
  • path 中有多个java可执行程序文件路径

2、多java可执行程序文件路径,处理方法

在Windows环境中,如果PATH变量中有多个同名的执行程序,系统会选择第一个找到的执行器来执行。(找的顺序就是 echo %path% 输出的那一串东西,从前往后找)

  • 首先使用echo %path%查看path有没有问题,是不是正确的,有没有你修改后的 java 版本信息。
  • 查看path中是否有其他java可执行程序的文件路径在你目标路径前面,如果有,移到你的期望执行程序后就可以了。比如
    • Oracle 的 javapath
      C:\Program Files (x86)\Common Files\Oracle\Java\javapath-JAVA8的默认配置
      C:\Program Files\Common Files\Oracle\Java\javapath-JAVA17的默认配置
    • JRE
      配置的JRE路径
    • 系统变量和用户变量的先后问题
      用户变量 path 内容会跟在系统变量 path 内容的后面。查看你的系统变量是不是没改。
    • 可能还有其他的,你可以都去对应目录下试一试,参考一里面的
  • 修改完路径后,再使用echo %path%查看一下有没有改成功,顺序是不是你期望的顺序。

三、其他

1、修改jre文件名后报错

https://blog.csdn.net/Astartbangbang/article/details/88911226

2、系统变量和用户变量

https://blog.csdn.net/chengyq116/article/details/105900122/

  • 普通变量

如果在用户变量和系统变量中创建同名变量,那么 Windows 会将用户变量覆盖系统变量。在 cmd 中输出的是用户变量中该变量的值。
对于普通变量,用户环境变量优先级高于系统环境变量。系统会先检查用户变量,之后再检查系统变量。

  • path 变量

​1. 环境变量不区分大小写,path / PATH / Path 表示指定可执行文件的搜索路径。
2. echo %path% 可以得到 path 变量的值 (系统变量中的值与用户变量中的值的组合),用户变量 path 内容会跟在系统变量 path 内容的后面
3. 对于 Path 变量,系统环境变量优先级高于用户环境变量。
4. Windows 系统在执行用户命令时,若用户未给出文件的绝对路径,则首先在当前目录下寻找相应的可执行文件。然后在系统变量的 path / PATH / Path 路径中查找,如果找不到,再到用户变量的 path / PATH / Path 路径中查找。

Windows 对于 Path 变量的处理方式是,将用户变量的 Path 添加到系统变量 Path 后面。Windows 在查找指令的时候,是按 Path 中的路径从前往后找,直至在某个路径中找到了该指令。如果系统变量 Path 中有对应指令的话,Windows 就不会再去用户变量 Path 中查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值