如何说服 Windows 使用 JDK 而不是 JRE?
之前,这里和其他地方已经提出过这个问题:
问题是 Windows 忽略了 JAVA_HOME
并且它也忽略了我将 JDK bin 目录设置为路径中的第一个条目的事实。
当我从命令行运行 java -version
时,它不是调用我的 JDK 1.6 安装,而是运行 1.7 JRE。
我的猜测是这是 1.7 特有的问题,而 Windows 7 正在做一些它不应该对注册表进行的操作。
有想法该怎么解决这个吗?
编辑:哎呀。当我的意思是“路径”时,我在上面写了“类路径中的第一个条目”。对不起。
原文由 ccleve 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Windows 上,相同的
java
可执行文件可以为不同版本的 Java 加载 DLL。它查看运行它的目录,看它是否包含特定 Java 版本的库。如果没有,它会使用 Windows 注册表来定位系统的默认 Java 版本。Java 安装程序会将
java.exe
(但没有库)的副本放在Windows\system32C:\Program Files (x86)\Common Files\Oracle\Java\javapath
目录中, 并将 该目录添加到PATH
的开头---
变量。如果不使用完整路径,则使用
PATH
系统变量找到要运行的java.exe
的副本。由于此目录不包含特定 Java 运行时版本的 DLL,因此可以通过查看注册表找到一个。因此,您要么需要修改注册表,要么将
javapath
条目替换为 ---PATH
_系统_(非用户)变量中所需的 Java 版本。