Windows如何存储JDK位置引用?未改环境变量为何默认Java 10?
Windows 如何决定使用哪个JDK版本?
这个问题我当初刚接触多JDK环境时也踩过一模一样的坑!其实Windows是按照环境变量PATH的查找顺序来决定使用哪个java.exe的,咱们一步步理清楚:
- JDK安装包的自动操作:你安装Java 10的时候,官方安装程序会悄悄把Java 10的
bin目录路径添加到PATH环境变量的最前端,而不是追加到末尾。这就导致系统在查找java.exe时,会优先找到位置更靠前的Java 10版本,完全忽略了后面的Java 7路径。 - 验证查找顺序的方法:
- 打开CMD或Cygwin,执行
echo %PATH%(Windows CMD)或echo $PATH(Cygwin),你会看到Java 10的bin路径排在Java 7的前面。 - 更直观的是执行
where java(CMD)或which -a java(Cygwin),这个命令会列出系统能找到的所有java.exe的完整路径,输出的顺序就是系统的查找优先级。
- 打开CMD或Cygwin,执行
- 关于
JAVA_HOME的误区:很多人以为JAVA_HOME决定了默认Java版本,但实际上直接在终端执行java -version时,系统根本不读取JAVA_HOME——这个变量主要是给Maven、Tomcat这类依赖Java的程序用的,终端命令只认PATH的顺序。 - 快速切换版本的小技巧:如果想临时切回Java 7,不需要卸载任何版本,只要把Java 7的
bin路径手动移到PATH环境变量的最前面,或者暂时移除Java 10的路径即可。
内容的提问来源于stack exchange,提问作者dukenukem6487
相关产品推荐
相关产品推荐

