java - 从 Java 8 切换到 Java 11

标签 java windows java-11

我已经从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_HOMEPATH 设置为指向 JDK-11,为什么 java -version 仍然使用Java 8?

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

关于java - 从 Java 8 切换到 Java 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53128835/

相关文章:

java - 为什么这个文本比较失败?

windows - Windows 10 上的 Vim/gVim 8.1 不会获取 $HOME\_vimrc

c - 以编程方式从控制台屏幕缓冲区大小设置禁用 "Wrap text output on resize"(C)

java - 内存分配究竟是如何进行的,Java 和 C 如何交互以跟踪同一个对象?

java - Keycloak java.lang.NoClassDefFoundError : java/security/acl/Group using Springboot

java - Jpa&Hibernate是否加载数据库中异步更改的数据?

java - 改造查询参数

java - 如何设计单元测试类

windows - 我正在寻找一个将多个文本文件的名称附加到每个文件的第一行的批处理脚本

java - java 11中isEmpty()和isBlank()方法的区别