Java -version 显示 Java 8,但已安装 Java 11

27
在我的系统上安装了Java 11之后,运行时仍然是1.8。
已经安装的Java版本:
- C:\ Program Files \ Java \ jre1.8.0_201 - C:\ Program Files \ Java \ jdk-11.0.3
JAVA_HOME环境变量的值为 "C:\ Program Files \ Java \ jdk-11.0.3"。
从命令提示符中运行“java -version”命令,并期望看到Java 11信息,但实际上看到的是Java 8。
更改环境变量值不会改变结果,重新启动似乎也没有起作用。
C:\Users\user>java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) Client VM (build 25.211-b12, mixed mode)

预期显示Java 11运行时信息


4
请查看您的PATH环境变量。 - jalynn2
3
打开一个Windows命令提示符窗口,然后输入命令 where java - Abra
1
似乎指向:C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe - TheZerg
我也遇到了同样的问题。使用Java命令帮助了我。感谢-Abra。 - manish bansal
8个回答

30
昨天我刚遇到了这个问题。按照指示操作,但下载的JDK11版本实际上是1.8.0而不是期望的11.0.5版本。有趣的是,CMD提示符返回了正确的Java版本(11.0.5)用于“javac -version”命令,但对于常规的“java -version”命令则没有。我的IT专家甚至告诉我尝试卸载现有的Java加载,因为他想不到其他方法……(我最终没有删除Java)
事实证明,他确实帮了我一把,也许是无意中,但只有回过头来才意识到这一点。他告诉我尝试将路径变量
%JAVA_HOME%\bin
提升到[编辑环境变量]窗口中找到的路径变量列表的顶部,用于选项PATH系统变量。起初这并没有立即生效,所以我们认为它没有任何效果。但是我相信这失败是因为当我第一次输入该变量时,我犯了一个错误。我使用小写字母书写单词“home”,而不是大写字母。一旦我意识到我的错误并将其更正为大写字母“HOME”,我的CMD提示符就会返回正确的java -version(11.0.5),与javac -version命令结果相匹配。
请注意: 然后我尝试将%JAVA_HOME%\bin变量移回到原始创建位置的底部,java -version命令不再显示v.11.0.5,而是返回原始答案v.1.8.0。所以我玩了一下,发现这个变量需要位于现有PATH窗口中以下变量的上方:
C:\Program Files (x86)\Common Files\Oracle\Java\javapath
希望这可以像对我一样对其他人有所帮助!

自从我上大学以来,我就一直遇到这个问题,我自己想,只要我的编译工作正常,我就没事了,直到现在公司的项目需要v11,我才真正使用v11而不是8。该死,我不知道只是将JAVA_Home路径移到路径上方,现在它确实显示v11而不是8。 - iamjoshua
PS:不得不通过结束进程树关闭整个IntelliJ实例,然后重新打开InteliJ,以便在IntelliJ中使用的环境变量刷新并使用最近更新的系统变量。因此,当您的更改未显示在IntelliJ终端中,但在Windows终端中显示时,请确保关闭所有IntelliJ进程并重新打开应用程序,以便刷新存储在其本地存储中的环境变量。 - iamjoshua
将JAVA_HOME作为列表中的第一个条目移动确实有所帮助..不错。 - Piotr Niewinski
如果将v11条目移动到PATH列表的顶部可以解决问题,那么这意味着列表中还有另一个指向Java的版本的条目。 此外,请记得重新启动命令提示符/Shell以使更改生效。 有些人报告说他们需要进行完整的系统重启才能看到更改。 - Aterxerxes

5
在环境变量中将JAVA_HOME项移动到上面,就像下面的图片所示:

enter image description here

对于Java 8,您可以创建如图中所示的JAVA8_HOME。

3

我通过更新用户变量中的path而不是更新系统变量来解决了这个问题。

目前我有:

JAVA_HOME = C:\Program Files\Java\jdk-11.0.6

在用户变量中包含%JAVA_HOME%\bin


2

我曾经遇到过这个问题,并且以下是我如何解决它的方法。

在cmd/终端中 - 输入 where java,这将返回系统中安装的所有java版本。

enter image description here

在我的情况下,我不知道什么时候安装了java 11。之后,我小心地删除了上面列表中的java 11和Oracle java的两个目录。然后添加了JAVA_HOME

enter image description here

并相应地设置了路径 - %JAVA_HOME%\bin,然后它就起作用了。

enter image description here


2
在系统环境变量中,将PATH添加到新JDK的bin文件夹,并删除旧条目。最初的回答。
%JAVA_HOME%\bin

现在执行此操作会出现以下消息:'java' 不是内部或外部命令,也不是可运行的程序或批处理文件。 - TheZerg

1
1: Click on Start (Windows) button.
2: Write Environmental variables.
3: Select the item.
4: Go to Advanced tab.
5: Click Environmental Variables.
6: Look for the one called "path".
7: Check for the java 7 instalation and change it to the path of your Java 11 instalation (C:\Program Files\Java\jdk-11.0.3).

嗨,如何在macOS上完成这个任务? - famfamfam

1

请确保您已在用户变量和系统变量中添加了以下路径。 C:\Program Files\Java\jdk-11.0.3

如果还不行,请尝试将它们放在顶部。


在我的情况下起作用了。不得不将JAVA_HOME移到顶部。 - Anna

-1

在Windows 10上

下载JDK 11,运行 .exe 文件。

按照步骤操作,问题就会得到解决!

  1. 复制存储jdk的链接。
    例如:C:\Program Files (x86)\Java\jdk-11.0.12\ bin

  2. 系统属性 -> 环境变量 ->(在系统变量部分) -> 单击路径 -> 编辑 -> 在路径列表中 (C:\Program Files (x86)\Common Files\Oracle\Java\javapath),单击其旁边的编辑文本(单击确定),现在将jdk存储的路径复制到路径列表的末尾。

  3. 在同一部分(在系统变量部分) -> 单击新建 -> 变量名称:JAVA_HOME和变量值:C:\Program Files (x86)\Java\jdk-11.0.12(不包括文件bin!!) -> 单击确定并关闭窗口。

  4. 打开CMD并运行 -> java -version 和 javac -version。

希望您觉得这很有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接