Java -version 打印错误的版本

Zeu*_*eus 1 java ant

我的环境中安装了多个版本的Java(我知道这很糟糕)。我已将 JAVA_HOME 设置为jdk 1_4目录。它没有安装,而是从 zip 中提取并放置在某个地方。我们java 1.8 JRE也已经安装在系统中了。我从未设置过此安装目录的路径。现在我正在尝试运行一些依赖于 jdk 1_4 的 ant 脚本。我收到一些异常,说它无法在java1.8....

我的问题是,当路径和java_home设置为jdk 14时,为什么ant会寻找1.8版本的java?我很困惑。

更新:我已经查找了重复的问题。

Additional details:Java -version 打印 1.8,路径中包含 jdk 14 和 java_home。我卸载了1.8。重新打开 cmd 尝试了 java -version,现在错误提示无法找到 java1.8,而不是尝试在路径或 java_home 中查找下一个可用的 java。

显示错误:

C:\Users\usrpao>java
Error: could not open `C:\Program Files\Java\jre8\lib\amd64\jvm.cfg'
Run Code Online (Sandbox Code Playgroud)

Dav*_* W. 7

我的环境中安装了多个版本的Java(我知道这很糟糕)。我已将 JAVA_HOME 设置为 jdk 1_4 目录。

完全没有错。我有类似的设置,因为我必须在 Java 版本之间切换。

  • 首先,在驱动器的根目录中安装 Java JDK。目录名称中没有空格。例如,C:\Java\Java-1.6-21C:\Java\Java-1.7-5
  • 在系统控制面板的环境变量部分(在“高级”下),创建一个环境变量以指向这些 Java 主目录中的每一个。例如,JAVA_HOME_17 = C:\Java\Java-1.7.5JAVA_HOME_16 = C:\Java\Java-1.6-21。这应该是系统环境变量。
  • 创建指向所需 Java 版本的 JAVA_HOME 环境变量:JAVA_HOME = %JAVA_HOME_17%
  • 现在,在系统路径中,为路径(第一个条目)添加前缀%JAVA_HOME%\bin.

当您打开控制台窗口时,您的默认值javajavac命令将是正确的 Java 版本。

如果需要更改版本,请更改JAVA_HOME环境变量以指向正确的环境变量并打开新的控制台窗口。现在,新的 Java 将出现在您的路径中。

注意:这是非常重要的,这是你之前%JAVA_HOME%\bin的第一部分。您不希望该目录中存在的文件成为您的默认 java.lang.PATHC:\Windows\System32java.exe