Java -version打印错误的版本



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

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

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

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

错误显示:

C:Usersusrpao>java
Error: could not open `C:Program FilesJavajre8libamd64jvm.cfg'

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

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

  • 首先,在驱动器的根目录下安装Java jdk。目录名中没有空格。例如:C:JavaJava-1.6-21C:JavaJava-1.7-5
  • 在系统控制面板的环境变量部分(在高级下),创建一个环境变量来指向这些Java主目录中的每个。例如:JAVA_HOME_17 = C:JavaJava-1.7.5JAVA_HOME_16 = C:JavaJava-1.6-21。这应该是一个系统环境变量
  • 创建一个JAVA_HOME环境变量,指向您想要的Java版本:JAVA_HOME = %JAVA_HOME_17%
  • 现在在System PATH中,在PATH(第一个条目)前面加上%JAVA_HOME%bin

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

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

注意: %JAVA_HOME%binC:WindowsSystem32之前出现在PATH的第一部分是非常重要的。您不希望该目录中存在的java.exe是您的默认java.

您没有指定操作系统,所以:

  • 在windows上,java在C:Windowssystem32中安装java.exe,它可能在java_home之前的路径上,因此被拾取
  • 在Linux上,支持多个安装的java版本的各种发行版也会在路径的前面有一些符号链接。运行'which java'来确定符号链接在哪里

系统存在多个java版本的问题,我先卸载了所有的java版本。重启了我的机器。Path和java home指向jdk 1.4。java -version现在指向path中指定的版本。谢谢所有。

相关内容

  • 没有找到相关文章

最新更新