Windows 忽略 JAVA_HOME:如何将 JDK 设置为默认值?

新手上路,请多包涵

如何说服 Windows 使用 JDK 而不是 JRE?

之前,这里和其他地方已经提出过这个问题:

如何设置默认 Java 安装/运行时 (Windows)?

问题是 Windows 忽略了 JAVA_HOME 并且它也忽略了我将 JDK bin 目录设置为路径中的第一个条目的事实。

当我从命令行运行 java -version 时,它不是调用我的 JDK 1.6 安装,而是运行 1.7 JRE。

我的猜测是这是 1.7 特有的问题,而 Windows 7 正在做一些它不应该对注册表进行的操作。

有想法该怎么解决这个吗?

编辑:哎呀。当我的意思是“路径”时,我在上面写了“类路径中的第一个条目”。对不起。

原文由 ccleve 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 947
2 个回答

在 Windows 上,相同的 java 可执行文件可以为不同版本的 Java 加载 DLL。它查看运行它的目录,看它是否包含特定 Java 版本的库。如果没有,它会使用 Windows 注册表来定位系统的默认 Java 版本。

Java 安装程序会将 java.exe (但没有库)的副本放在Windows\system32 C:\Program Files (x86)\Common Files\Oracle\Java\javapath 目录中, 并将 该目录添加到 PATH 的开头 --- 变量。

如果不使用完整路径,则使用 PATH 系统变量找到要运行的 java.exe 的副本。由于此目录不包含特定 Java 运行时版本的 DLL,因此可以通过查看注册表找到一个。

因此,您要么需要修改注册表,要么将 javapath 条目替换为 --- PATH _系统_(非用户)变量中所需的 Java 版本。

原文由 erickson 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 Windows 8 中,您可能想要删除 C:\ProgramData\Oracle\Java\javapath 目录。

从路径

它解决了我的问题。

原文由 Arun 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题