3

我的机器上安装了 2 个 Java。1.5 和 1.6。对于该项目,我需要 1.5。我已将所有路径变量设置为适当的,即

echo %JAVA_HOME%
<PATH_TO_1.5_JDK>

这就是我想要的..但​​是当我这样做时

java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)

为什么选择 java v 6 作为java -version命令?

更新 我已经检查了%PATH%变量,路径中出现的唯一 java 版本是 1.5。我在SYSTEM VARIABLES这里指的是变量,我使用的是 Win7

4

6 回答 6

7

选择 Java 6 是因为它首先出现在您的 PATH 环境变量中。它与 JAVA_HOME 变量无关,除非您使用 JAVA_HOME 变量指定 PATH 变量

将新的用户变量 PATH 设置为 JAVA_HOME\bin,将解决您的问题

于 2012-10-15T15:11:28.853 回答
3

如果在java命令行上运行命令,重要的环境变量是%PATH%:如果 JDK-1.6 bin目录的路径在路径上的 1.5 bin目录的路径之前,那么java在命令行上运行将使用1.6版本。

环境变量被JAVA_HOME其他各种程序用来定位 JDK,例如 ant、一些 IDE 和第三方库。

如果您在项目中使用特定的 IDE,那么您需要了解它是如何定位 JVM 的。如果您将在命令行上进行编译,请调整您PATH的 1.5 安装在 1.6 安装之前,或者使用编译器和 VM 的完整路径。

于 2012-10-15T15:11:42.240 回答
1

JAVA_HOME 与执行 java 的 PATH 不同。

读完你会明白的

http://docs.oracle.com/javase/tutorial/essential/environment/paths.html

于 2012-10-15T15:19:11.560 回答
1

我有一个类似的问题,我解决了:

路径没有改变,因为特定用户JAVA_HOME指向了一些错误的 Java 版本。

在 Windows 运行中键入“为您的帐户编辑环境变量”,我JAVA_HOME在用户变量中看到了另一个。我删除了它,然后使用了正确的 Java 版本。

于 2018-03-09T11:12:15.543 回答
0

AFAIK,没有一个 HotSpot Java 命令使用 JAVA_HOME 来做任何事情:

在 Windows、UNIX、Linux 和基于 BSD 的操作系统(如 MacOS)上,诸如java和之类的命令是基于 PATH 变量定位的。javac通过 PATH 定位命令的位置通常是命令外壳和/或操作系统功能。

JAVA_HOME 变量被一些3rd-party 工具(例如 Ant、Maven、Tomcat 等)用来定位要使用的 Java 安装。但是其他工具会忽略 JAVA_HOME 并使用特定于应用程序的配置机制(例如 Eclipse)或一些 shell 东西来确定安装位置(例如)java通过PATH.

于 2012-10-15T15:12:19.163 回答
0

我在使用 Java 7 和 Java 8 时遇到了同样的问题。

解决方案:从 PATH 变量(系统变量)中删除以下条目:

c:\ProgramData\Oracle\Java\javapath\
于 2015-07-29T08:59:14.647 回答