java -version 和 javac -version 显示不同的版本

新手上路,请多包涵

我有 java 7java 8 都安装在我的windows系统下 C:\Program Files\Java

在环境路径中,我指定了 java 7 的路径,如下所示。

%JAVA_HOME%/bin 其中 JAVA_HOME = C:\Program Files\Java\jdk1.7.0_17

但是当我输入 javac -version 它显示 javac 1.7.0_17 这是有道理的

但是当我做 java -version 它显示

java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

在此处输入图像描述

知道这里可能是什么问题吗?

编辑 已安装的文件夹:在此处输入图像描述

And one more thing echo %PATH% has only one occurence of JDK that is for java 7 and no occurence for JRE found in it.

原文由 SparkOn 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 519
1 个回答

出现此问题很可能是因为您的 PATH 中有一个 JRE ,在您的 JDK 之前。当我们在 PATH 中添加 JDK 并且不删除之前添加的 JRE 时,通常会发生这种情况。因此,当您执行 java 它指向 JRE,当您执行 javac 它指向其他版本/JDK(因为 JRE 没有 javac 在里面)

如果您的路径中没有任何 JRE,那么您可以复制 %JAVA_HOME% 并将其首先粘贴到您的路径变量中(确保它位于 system32 路径之前)。

此答案中解释 了为什么这样做的可能原因:

JRE 还将 java.exe 放入 c:\Windows\System32 ,这就是第一个命令的解析方式。第二条命令由 PATH 变量中的 C:\Program Files\Java\jdk1.7.0_02\bin 条目解析。如果(以及何时)从命令提示符进行开发,则必须调整 PATH 变量,以便 C:\Program Files\Java\jdk1.7.0_02\bin 之前 c:\Windows\System32

原文由 Mustafa sabir 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题