Windows 在哪里保存 JDK 位置参考?

Where does Windows keep JDK location reference?

我之前在 Windows PC 上安装了 Java 7。系统环境变量也有它的位置。我安装了Java10,没有卸载7,也没有改环境变量。现在,当我转到 CMD 或 Cygwin 并输入 Java -version 时,它显示 Java 10.

我想既然我没有更改环境变量,它仍然是 7。Windows 如何决定使用什么 JDK?

谢谢!

如果您使用的是 java ide ,您可能会在 JRE 配置中找到该位置。例如在日食中:

windows > preferences > Installed JREs

.

您的 JAVA_HOME 变量可能仍设置为 JDK 7 目录,但是 Java 10 安装可能已将其 /bin 目录插入到 PATH。

检查以确保 java 10 不在 java 7 之前的 PATH 上,或者没有覆盖它。

CMD 等检查二进制文件的路径以获取 java-version.

等命令

可能是您的 JAVA_HOMEPATH 环境变量被更改了。

转到命令行并执行以下操作进行检查:

> echo %JAVA_HOME%  

例如,对我来说它返回:

C:\Program Files\Java\jdk-9.0.4

How is Windows deciding what JDK to use?

Windows 不是自己做决定。如果你在运行java -version时得到版本10的信息,那是因为Windows在java.exe指向的路径中首先找到了版本10对应的文件夹java.exe路径环境变量。如果您使用安装程序安装了 Java,安装程序会为您更新 PATH 变量。检查您的 PATH 变量,您将首先看到 Java 10 文件夹,然后是 Java 7 文件夹。