从java 8切换到java 11

Avi*_*uja 5 java windows java-11

我从oracle官方站点下载并安装了oraclejdk11,并在windows上的系统环境变量中修改了PATH和JAVA_HOME变量

C:\ Users\Aviral> javac -version

javac 11.0.1

C:\ Users\Aviral> java -version

java版"1.8.0_102"

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

我知道jdk11不包含jre但是如何从java 11中的cmd运行java程序

小智 7

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


Sla*_*law 6

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

当您java在命令行中键入时,它实际上是简写形式。它搜索您的内容,PATH直到找到第一个匹配的java可执行文件。如果要指定其他java可执行文件,则可以提供可执行文件的绝对路径。

C:\Users\Avril> "C:\Program Files\Java\jdk-11.0.1\bin\java" -jar path\to\file.jar
Run Code Online (Sandbox Code Playgroud)

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

看看您的PATH,您很可能会发现像C:\ProgramData\Oracle\Java\javapath第一个条目一样的东西(请参阅此)。当你安装了Java 8点到Java 8可执行文件自动添加该条目(javajavaw,和javaws)。由于它在您%JAVA_HOME%\bin输入之前,因此具有优先权。但是,...\javapath不包含javac,这就是为什么要javac -version使用JAVA_HOME(Java 11)。