在我的windows系统中,java 7和java 8都安装在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 只出现了一次 JRE ,即 java 7 ,而JRE没有出现在其中。
发布于 2014-08-01 06:29:33
这个问题之所以出现,很可能是因为您的JRE位于PATH中,在JDK之前。当我们在PATH中添加JDK而不删除以前添加的JRE时,通常会发生这种情况。因此,当您执行java时,它指向JRE,当您执行javac时,它指向另一个版本/JDK(因为JRE中没有javac )
如果您的路径中没有任何JRE,那么您可以复制您的%JAVA_HOME%并首先将它粘贴到path变量中(确保它在system32路径之前)。
这起作用的一个可能原因是在这个答案中解释
JRE还将一个
java.exe放到c:\Windows\System32中,这就是解析第一个命令的方法。第二个命令由C:\Program Files\Java\jdk1.7.0_02\bin变量中的PATH条目解析。如果(以及何时)从命令提示符进行开发,则必须调整PATH变量,使C:\Program Files\Java\jdk1.7.0_02\bin位于c:\Windows\System32之前。
发布于 2019-04-02 19:57:55
转到windows机器中的环境变量。在用户变量中:确保将用户变量"JAVA_HOME“值设置为"C:\Program \Java\ jdk \bin”,其中“jdk”是jdk的版本。
在系统变量:-向"Path“变量中添加相同的"C:\Program \Java\jdk\bin”值。确保将增加值移至所有值的顶部。
现在尝试运行java -version和javac -version。为我工作过。::) 我把我的截图联系起来了
发布于 2014-08-01 06:42:48
好的,正如您所说的,您的路径上没有JRE,我假设(如果您有Windows 7)会给您C:\Windows\System32\java.exe。
更改java运行
尝试使用控制面板中的对话框来更改当前处于活动状态的Java系统版本。这应该会改变java -version返回的版本。如果这不起作用,您可能需要重新安装要运行java命令的Java,显式地指定路径,编写自己的包装器(如果您与包装器位于同一个目录中),或者将JRE路径放在C:\Windows\System32\前面的路径上(不知道最后一个选项是否真的是一个好选项)。
包装器的外观可能如下所示:
@"C:\Program Files\Java\jre7\bin\java.exe" %*您可以将它命名为java.bat (如果您位于同一个目录中,它将工作,或者在C:\Windows\System32\java.exe之前将其放在PATH中,或者您可以将它命名为java7.bat,并将其放置在路径上的任何位置,以便能够运行Java7JRE,如果您愿意的话)。
如果要在运行时更改JAVA_HOME,包装器也是一个很好的选择。
更改javac运行
如果您想运行一个不同的javac,点击Windows + Pause并打开系统对话框来更改PATH,因此它包含到JDK 8而不是JDK 7的路径。您需要重新启动命令行,以便显示更改。
https://stackoverflow.com/questions/25074017
复制相似问题