为什么感觉环境变量没配错,JDK包没有问题,但是javac命令运行失败(环境变量的一些思考)

发布时间 2023-11-08 00:15:14作者: 白缺

个人错误速看

我是JDK包没问题,环境变量配置在了用户变量中,导致优先级更高的系统变量的Path中有一个其他文件夹的javac.exe文件路径,所以每次都执行那个错误的javac.exe,如果问题和我一样可以接着往后看。

环境变量的作用

  1. 首先在jdk-xxx\bin下运行javac -version是绝对可行的,因为javac.exe文件就存放在该目录之下。
  2. 而要在别的目录下同样用到该命令,就必须配置环境变量Path中的路径,添加X:\xxx\jdk=xxx\bin这个路径。
  3. 在其他目录下执行javac -version命令,首先系统寻找该目录下是否存在名为javac的可运行文件,如果没有再逐一去环境变量Path中寻找。

环境变量的遍历顺序

很多博客中说到如果你验证了JDK包没有问题,环境变量一定要注意将Path路径中的X:\xxx\jdk=xxx\bin路径往上移动到最上层,但是没有讲其中原理,我想讲的是两个注意的问题。

  • 移到最上面应该是指下方即本机全局的系统变量Path的最上方,而不是用户变量的Path的最上方。打开cmd命令行窗口,输入path命令是可以发现在遍历path路径时系统变量优先于用户变量

image

  • 当发现把路径上移就能解决问题的时候得想想其背后的原理,系统既然没有遍历到你需要的正确路径,那就是因为比正确路径的优先级更高的路径中存在有javac.exe文件。我的话就是下面图片中框起来的那个路径中有javac.exe文件。

image