我的 java 7
和 java 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)
知道这里可能存在什么问题吗?
编辑安装的文件夹:
还有一件事 echo %PATH%
只有一个 JDK
出现,即 java 7
而没有出现JRE
在里面找到。
最佳答案
问题的出现很可能是因为您的 PATH
中有一个 JRE,位于 JDK 之前。这通常发生在我们在 PATH
中添加 JDK 并且不删除之前添加的 JRE 时。因此,当您执行 java
时,它指向 JRE,而当您执行 javac
时,它指向另一个版本/JDK(因为 JRE 没有 javac
在里面)
如果您的路径中没有任何 JRE,那么您可以复制您的 %JAVA_HOME%
并将其首先粘贴到您的路径变量中(确保它在 system32
路径)。
这可行的一个可能原因是explained in this answer :
JRE also puts a
java.exe
toc:\Windows\System32
, that's how first command is resolved. Second command is resolved by theC:\Program Files\Java\jdk1.7.0_02\bin
entry in yourPATH
variable. If (and when) you are developing from the command prompt, you have to adjust thePATH
variable so thatC:\Program Files\Java\jdk1.7.0_02\bin
is beforec:\Windows\System32
.
关于java -version 和 javac -version 显示不同的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25074017/