我已经从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 程序
最佳答案
JDK 包含 JRE,您可以使用 bin
文件夹中的 java
可执行文件启动它。您可以像使用任何其他可执行文件一样使用此可执行文件。
当您在命令行中键入 java
时,它实际上是速记。它会搜索您的 PATH
,直到找到第一个匹配的 java
可执行文件。如果您想指定一个不同的 java
可执行文件,您可以提供该可执行文件的绝对路径。
C:\Users\Avril> "C:\Program Files\Java\jdk-11.0.1\bin\java" -jar path\to\file.jar
您可能想知道,如果您已将 JAVA_HOME
和 PATH
设置为指向 JDK-11,为什么 java -version
仍然使用Java 8?
查看您的 PATH
,您可能会发现类似 C:\ProgramData\Oracle\Java\javapath
的内容作为第一个条目 (see this) .此条目是在您安装 Java 8 并指向 Java 8 可执行文件(java
、javaw
和 javaws
)时自动添加的。因为它在您的 %JAVA_HOME%\bin
条目之前,所以它具有优先权。但是,...\javapath
不包含 javac
,这就是 javac -version
使用 JAVA_HOME
的原因(Java 11).
关于java - 从 Java 8 切换到 Java 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53128835/