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

2022-08-31 10:21:39

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

这个问题以前被问过,在这里和其他地方:

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

麻烦的是Windows忽略了,它也忽略了我将JDK bin目录作为路径中的第一个条目的事实。JAVA_HOME

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

我的猜测是,这是特定于1.7的问题,Windows 7正在做一些不应该对注册表做的事情。

关于如何解决这个问题的任何想法?

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


答案 1

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

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

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

因此,您要么需要修改注册表,要么将该条目替换为系统(而不是用户)变量中所需的 Java 版本。javapathPATH


答案 2

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

从路径

它解决了我的问题。


推荐