版本显示不同的版本
我在Windows系统下安装了C:Program FilesJava
下的java 7
和java 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