Java -version打印错误的版本

时间:2014-07-25 16:03:43

标签: java ant

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

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

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

Additional details: Java -version在路径和java_home中使用jdk 14打印1.8。我卸载了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'

3 个答案:

答案 0 :(得分:2)

  

我在环境中安装了多个版本的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为PATH(第一个条目)添加前缀。

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

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

注意:在%JAVA_HOME%\bin之前PATH的第一部分C:\Windows\System32至关重要。您不希望该目录中存在的java.exe成为您的默认java。

答案 1 :(得分:1)

您尚未指定操作系统,因此:

  • 在Windows上,java在C:\ Windows \ system32中安装一个java.exe,它可能位于java_home之前的路径上,因此被选中
  • 在Linux上,支持多个已安装java版本的各种发行版在路径上也会有一些符号链接。运行'which java'来确定符号链接的位置

答案 2 :(得分:0)

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