版本显示不同的版本

我在Windows系统下安装了C:Program FilesJava下的java 7java 8

在环境的路径中,我这样指定了java 7的路径。

%JAVA_HOME%/bin其中JAVA_HOME = C:Program FilesJavajdk1.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


这个问题很可能是因为你在你的JDK之前在你的path有一个JRE 。 当我们在path添加JDK并且不删除以前添加的JRE时,通常会发生这种情况。 因此,当你做java它指向JRE,当你做javac它指向另一个版本/ JDK(因为jre中没有javac)

编辑: - 由于你编辑了你的问题,并没有在你的路径中发布任何JRE,所以你可以复制你的%JAVA_HOME%并将其粘贴到你的路径变量中(确保它在system32路径之前),之前我遇到过这个问题(while安装android sdk)并且解决它。

还从这里找到了一个可能的解释: -

JRE also puts a java.exe to c:WindowsSystem32, that's how first command is resolved. Second command is resolved by the C:Program FilesJavajdk1.7.0_02bin entry in your PATH variable. If (and when) you are developing from the command prompt, you have to adjust the PATH variable so that C:Program FilesJavajdk1.7.0_02bin is before c:WindowsSystem32.


好的,正如你所说,你的路上没有JRE,我假​​设在where java (如果你有Windows 7)会给你C:WindowsSystem32java.exe

更改java运行

尝试使用控制面板中的Java-Settings对话框更改当前处于活动状态的Java系统版本。 这应该会改变版本java -version正在返回。 如果这不起作用,您可能需要重新安装要运行java命令的Java版本,明确指定路径,编写自己的包装器(如果与包装器在同一目录中,则可以使用)或放置将C:WindowsSystem32之前的JRE路径添加到您的路径中(不知道最后一个选项是否真的很好)。

一个包装可能看起来就像这样:

@"C:Program FilesJavajre7binjava.exe" %*

你可以将它命名为java.bat (如果你在同一个目录中,或者把它放在C:WindowsSystem32java.exe之前的PATH ,或者你可以将其命名为java7.bat并将它放在任何位置如果你愿意的话,你可以运行Java 7 JRE。

如果你想在运行时更改JAVA_HOME ,包装器也是一个不错的选择。

改变运行的javac

如果要运行不同的javac Windows + Pause并打开系统对话框来更改PATH以便它包含JDK 8而不是JDK 7的路径。您需要重新启动命令行才能显示更改。


要解决这样的环境问题,我总是相信命令whereis,在windows下执行相同的操作,然后将whereis.exe设置为路径并执行命令

whereis java.exe

whereis javac.exe

您可以很容易地找到java在环境中被调用的确切路径以及有关javac的路径。

链接地址: http://www.djcxy.com/p/30269.html

上一篇: version showing different versions

下一篇: How to determine path to php.exe on windows