显示不同版本的java版本和javac版本
我在我的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 "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
# 1 楼答案
这个问题的出现很可能是因为你的
PATH
中有一个JRE,在你的JDK之前。这通常发生在我们在PATH
中添加JDK,而不删除之前添加的JRE时。因此,当您执行java
时,它指向JRE,当您执行javac
时,它指向另一个版本/JDK(因为JRE中没有javac
)如果路径中没有任何JRE,那么可以复制
%JAVA_HOME%
并首先将其粘贴到path变量中(确保它位于system32
路径之前)这种方法之所以有效,一个可能的原因是explained in this answer:
# 2 楼答案
好的,正如你所说,你的道路上没有JRE,我假设^{} (if you have Windows 7) 会给你
C:\Windows\System32\java.exe
更改运行的
java
尝试使用“控制面板”中的“Java设置”对话框更改当前处于活动状态的Java系统版本。这应该会改变
java -version
返回的版本。如果这不起作用,您可能需要重新安装Java版本,运行java
命令,显式指定路径,编写自己的包装(如果您与包装在同一目录中,它就可以工作),或者将JRE路径放在C:\Windows\System32\
之前的路径上(不知道最后一个选项是否正确)包装纸可以是这样的:
你可以把它命名为
java.bat
(如果你在同一个目录下,它会工作的地方,或者把它放在PATH
之前C:\Windows\System32\java.exe
),或者你可以把它命名为java7.bat
,把它放在你路径上的任何地方,如果你想运行Java 7 JRE的话如果要在运行时更改
JAVA_HOME
,包装器也是一个不错的选择更改运行的
javac
如果你想运行一个不同的
javac
,点击Windows + Pause
并打开系统对话框来更改PATH
,使其包含到JDK 8而不是JDK 7的路径。需要重新启动命令行才能显示更改# 3 楼答案
为了解决这样的环境问题,我一直相信命令在哪里, 要在windows中执行相同操作,请下载whereis.exe,然后在path中设置并执行命令
您将很容易找到java在环境中被调用的确切路径,以及关于javac的路径
# 4 楼答案
我的箱子(移动jdk8->;jdk9->;jdk11)我有一个垃圾箱 由路径中的jdk8留下(在JAVA_主页:“C:\PATH\java11”之前)
所以我只是从系统变量中删除
C:\ProgramData\Oracle\Java\javapath_jdk8
//或者把它放在javapath_jdk11下面
# 5 楼答案
转到windows计算机中的环境变量。 在用户变量中:确保设置 -将用户变量“JAVA_HOME”值设置为“C:\Program Files\JAVA\jdk xxxx\bin” 其中“jdk xxx”是您的jdk版本
在系统变量中: -将相同的“C:\Program Files\Java\jdk xxxx\bin”值添加到“Path”变量中。 确保将附加值移到所有值之上
现在试着运行java-version和javac-version。 为我工作。:)Here i've linked my screenshot
# 6 楼答案
是的,为了处理不匹配的版本,我们需要修改PATH变量,是正确的,
where
命令(至少在Windows中)非常方便地确定首先选择哪个程序。 然而,有一个转折点: 例如,当您在运行后查看yout PATH var的内容时您应该知道,路径实际上由两部分组成:一部分是系统路径,另一部分是当前用户路径,并且是系统路径首先得到评估,但最后打印出来。 因此,只要在系统路径中的某个地方有另一个使用旧版本的地方,简单地在所有东西前面放置一条通向全新JDK的路径将是无用的
当您有以下条目时,这个特殊问题尤其常见:
在系统路径中。只需将它们移动到当前用户路径部分的尾部,即可使这些条目成为搜索队列中的最后一个条目