为什么感觉环境变量没配错,JDK包没有问题,但是javac命令运行失败(环境变量的一些思考)
个人错误速看
我是JDK包没问题,环境变量配置在了用户变量中,导致优先级更高的系统变量的Path中有一个其他文件夹的javac.exe文件路径,所以每次都执行那个错误的javac.exe,如果问题和我一样可以接着往后看。
环境变量的作用
- 首先在
jdk-xxx\bin下运行javac -version是绝对可行的,因为javac.exe文件就存放在该目录之下。 - 而要在别的目录下同样用到该命令,就必须配置环境变量
Path中的路径,添加X:\xxx\jdk=xxx\bin这个路径。 - 在其他目录下执行
javac -version命令,首先系统寻找该目录下是否存在名为javac的可运行文件,如果没有再逐一去环境变量Path中寻找。
环境变量的遍历顺序
很多博客中说到如果你验证了JDK包没有问题,环境变量一定要注意将Path路径中的X:\xxx\jdk=xxx\bin路径往上移动到最上层,但是没有讲其中原理,我想讲的是两个注意的问题。
- 移到最上面应该是指下方即本机全局的系统变量
Path的最上方,而不是用户变量的Path的最上方。打开cmd命令行窗口,输入path命令是可以发现在遍历path路径时系统变量优先于用户变量。

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


浙公网安备 33010602011771号