Java只更新jre而不更新jdk

标签 java java-8

我无法理解 java 更新。 使用 Windows 10,当我转到 C:\Program Files\Java 时,我有 3 个文件夹:

-jdk1.8.0_221

-jre1.8.0_251

-jre1.8.0_261

当我打开 cmd 并输入 java -version 时,我得到:

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

当我输入javac -version时,我得到:

javac 1.8.0_221

我检查了环境变量,它有与Java相关的注释。 当我输入 cmd where java 时,我得到:

C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
C:\Program Files\Java\jdk1.8.0_221\bin\java.exe

当我输入 where javac 时,我得到:

C:\Program Files\Java\jdk1.8.0_221\bin\javac.exe

问题:

  1. 如果1.8.0_261是最新的java版本,为什么我更新时只更新jre而不更新jdk?为什么jdk一直停留在221?
  2. 即使jdk最新版本是221并且jre最新版本是261,为什么它仍然保存jre 251文件夹?为什么它不删除它?我应该删除它吗?
  3. 为什么我的 javac 也没有更新?为什么“where”命令直接指向 221 文件夹名称。更新时它会改变吗?

谢谢。

最佳答案

JDK是Java的开发工具包,JRE是运行时环境。 JDK本身包含JRE。要运行 Java 应用程序,您需要 JRE。但是,有些程序在运行时需要编译器,因此在这种情况下,您需要 JDK。

由于JDK包含JRE。所以,最好使用JDK。

以下是在系统中设置 Java 的步骤。

  1. 通过 Java Oracle 在系统中安装任何 JDK。

  2. 系统变量中的JAVA_HOME变量设置为

    C:\Program Files\Java\jdk1.8.0_261\ .

设置完成后,系统会知道你已经安装了JDK。现在你的系统不知道javac来编译java应用程序。

  • 在同一系统变量中设置Path_Variable

    %JAVA_HOME%\bin

  • 由此,您的系统将识别 javac 编译器。

    关于Java只更新jre而不更新jdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63754747/

    相关文章:

    java - 如何通过Java程序启动JavaDB?

    java - 如何使用 CompletableFuture.thenComposeAsync()?

    java - JAX-RS 和 java.time.LocalDate 作为输入参数

    java - 为什么 Stream 没有 toList() 方法?

    java - Spring-data 和 Hibernate 自动生成的 ID

    java - Java 中的正则表达式速度

    java - 尝试创建客户端服务库时 wsimport 失败

    java - 如何在正在测试的另一个类中模拟类?

    java - 带有 jdk 8 的 Glassfish eclipse 插件

    classpath - 无法从类路径加载 jks 文件