java -version和javac -version显示不同的版本 [英] java -version and javac -version showing different versions
问题描述
我在C:\Program Files\Java
在环境路径中,我这样指定java 7
的路径.
In the environment's path I specified the path of java 7
like this.
%JAVA_HOME%/bin
其中JAVA_HOME = C:\Program Files\Java\jdk1.7.0_17
但是当我键入javac -version
时,它会显示javac 1.7.0_17
这是有道理的
But when I type javac -version
it shows javac 1.7.0_17
which makes sense
但是当我执行java -version
时,它会显示
but when I do java -version
it shows
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)
您知道这里可能是什么问题吗?
编辑:已安装的文件夹:
Edit The installed folder :
另外一件事echo %PATH%
中只有一次出现了JDK
,这是针对java 7
的,而没有出现JRE
的情况.
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.
推荐答案
出现此问题的原因很可能是因为您的PATH
中有一个 JRE ,而您的 JDK >.当我们在PATH
中添加JDK并且不删除以前添加的JRE时,通常会发生这种情况.因此,当您执行java
时,它指向JRE,而当您执行javac
时,它指向另一个版本/JDK(因为JRE中没有javac
)
The issue is occuring most probably because you have a JRE in your PATH
, before your JDK. This usually happens when we add JDK in the PATH
and do not remove previously added JREs. Thus when you do java
it points to the JRE and when you do javac
it points to the other version/JDK (since the JRE does not have a javac
in it)
如果您的路径中没有任何JRE,则可以复制%JAVA_HOME%
并将其首先粘贴到您的path变量中(确保其在system32
路径之前).
If you don't have any JREs in your path, then you can copy your %JAVA_HOME%
and paste it first in your path variable (make sure its before the system32
path).
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
之前.
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显示不同的版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!