从 java 8 切换到 java 11

Switching to java 11 from java 8

我已经从oracle官网下载并安装了oraclejdk11,并在windows

上修改了系统环境变量中的PATH&JAVA_HOME变量

C:\Users\Aviral>javac -version

javac 11.0.1

C:\Users\Aviral>java-版本

java版本“1.8.0_102”

Java(TM) SE 运行时环境(build 1.8.0_102-b14)
Java HotSpot(TM) 64 位服务器 VM(构建 25.102-b14,混合模式)

我知道 jdk11 不包含 jre 但我如何 运行 在 java 11

中从 cmd java 程序

bin 文件夹包含所有传统的 JRE 工具。在 Java 11 中,JDK 和 JRE 工具都被合并,因此 JDK 11 中没有 JRE。

JDK 包含 JRE,您可以使用 bin 文件夹中的 java 可执行文件启动它。您可以像使用任何其他可执行文件一样使用此可执行文件。

当您在命令行中键入 java 时,它实际上是 shorthand。它会搜索您的 PATH,直到找到第一个匹配的 java 可执行文件。如果您想指定一个不同的 java 可执行文件,您可以给出可执行文件的绝对路径。

C:\Users\Avril> "C:\Program Files\Java\jdk-11.0.1\bin\java" -jar path\to\file.jar

你可能想知道,如果你已经设置JAVA_HOMEPATH指向JDK-11,为什么java -version仍然使用Java 8?

看看您的 PATH,您可能会发现类似 C:\ProgramData\Oracle\Java\javapath 的内容是第一个条目 ()。此条目是在您安装 Java 8 并指向 Java 8 可执行文件(javajavawjavaws)时自动添加的。由于它在您的 %JAVA_HOME%\bin 条目之前,因此它具有优先权。但是,...\javapath 不包含 javac,这就是为什么 javac -version 使用 JAVA_HOME (Java 11).

为了使用 java11 从另一个文件夹而不是 bin 执行程序,您必须按如下方式设置 JAVA_HOME 路径 from CMD:

以管理员身份打开 CMD

将JAVA_HOME设置为JDK11 bin文件夹

setx -m JAVA_HOME "C:\Program File\Java\..."

我从JDK8升级到JDK11.添加Java11后路径[点路径最多

bin foler ] 和 JAVA_HOME [ 最多 jdk 个文件夹 (不包括 bin ) ]

成功,

java -version 仍然指向以前的 java 版本(在我的例子中是 java 8。)

然后,我运行一个命令"setx -m JAVA_HOME "C:\Program Files\Java\jdk-11.0.7"

现在 java -versionjavac -version 都显示 java 11。

希望对你也有帮助。