为什么 java -version 返回的版本与 JAVA_HOME 中定义的版本不同?

为什么 java -version 返回的版本与 JAVA_HOME 中定义的版本不同?

我的 JAVA_HOME 设置为C:\bea\jdk150_10\bin(Java 1.5)。但是,运行时java -version出现以下信息:

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

我如何使用1.5版本?

答案1

作为Mikel 曾提到,在您的机器中java取自C:\Windows\System32\java.exe

更改路径系统环境变量作为由 John T 提及

并修改其 路径C:\bea\jdk150_10\bin之前的。%SystemRoot%\system32

答案2

跑步

where java

在您的命令提示符下。

在我的系统上,它打印了一些意想不到的东西:

C:\Users\Mikel>where java
C:\Windows\System32\java.exe

验证那里确实有 Java:

C:\Users\Mikel>c:\windows\system32\java.exe -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)

因此,一个解决方案是确保您首选的 Java 位于 PATH 中C:\Windows\System32

我还尝试查看 Java 控制面板,看看它是否管理 中的版本C:\Windows\System32,但我只能查看设置,而不能编辑它们。也许它对你有用?

答案3

修改PATH变量,而不是JAVA_HOME

请参阅 Java 文档设置或更改 PATH 变量

  1. 开始 -> 控制面板 -> 系统 -> 高级

  2. 单击环境变量,在系统变量下,找到PATH并单击它。

  3. 在编辑窗口中,PATH通过将类的位置添加到 的值来进行修改PATH。如果您没有该项PATH,您可以选择添加一个新变量并添加PATH为名称,将类的位置添加为值。

  4. 关闭窗口。

  5. 重新打开命令提示符窗口,并运行 Java 代码。

答案4

并非所有应用程序都会JAVA_HOME获取 JDK 版本。如前所述,其中一些应用程序使用%SystemRoot%\System32\java.exe。您可以执行%SystemRoot%\java.exe -version来查看该版本。

我要补充的是,对于其他回复,如果您使用 Maven 进行构建,M2_HOME\bin也必须按照%SystemRoot%顺序进行,以便 Maven 使用正确的JAVA_HOME版本。

相关内容