繁体   English   中英

Java版本打印错误的版本

[英]Java -version prints a wrong version

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

我的问题是,当path和java_home设置为jdk 14时,为什么蚂蚁会寻找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'

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

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

  • 首先,在驱动器的根目录中安装Java JDK。 目录名称中没有空格。 例如, C:\\Java\\Java-1.6-21C:\\Java\\Java-1.7-5
  • 在系统控制面板(在“高级”下)的“环境变量”部分中,创建一个环境变量以指向这些Java Home目录中的每个目录。 例如, 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%
  • 现在,在系统PATH中,用%JAVA_HOME%\\bin为PATH(第一个条目)添加前缀。

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

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

注意%JAVA_HOME%\\binPATH的第一部分中C:\\Windows\\System32之前非常重要。 您不希望该目录中存在的java.exe是您的默认Java。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM