【问题标题】:Java update only jre and not jdkJava 只更新 jre 而不是 jdk
【发布时间】:2020-09-05 14:03:03
【问题描述】:

我无法理解 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 文件夹名称。我更新时它会改变吗?

谢谢。

【问题讨论】:

  • java 更新程序似乎只更新 JRE。 javac是编译器,只是jdk的一部分。
  • JRE 和 JDK 是两个不同的东西。 JRE 用于运行应用程序,JDK 用于开发。
  • 所以解决方案(在Windows上)是如果你想更新javac和其他开发工具,手动安装最新的JDK。 (在 Linux(RHEL、Ubuntu 等)上,包管理器将更新两组工具......当你告诉它时。)

标签: java java-8


【解决方案1】:

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 应用程序。

  1. 在相同的系统变量

    中设置Path_Variable

    %JAVA_HOME%\bin.

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

【讨论】:

  • 在控制面板中查看你的系统中安装了哪个java JDK版本。
  • 不必要地卸载 JRE/JDK。手动删除对应的 JDK/JRE 文件夹。从 Java Oracle 站点手动安装 JDK 并相应地设置路径。
【解决方案2】:

如果 1.8.0_261 是最新的 java 版本,为什么我只更新它 更新 jre 而不是 jdk?为什么jdk一直停留在221?

相信您已经知道JDKJava 开发工具包,而JREJava 运行时环境they are different things。您可以从https://www.oracle.com/uk/java/technologies/javase/javase-jdk8-downloads.html 安装最新版本的JDK 1.8,而要安装最新版本的JRE 1.8,您需要从https://www.oracle.com/java/technologies/javase-jre8-downloads.html 下载二进制文件。当您安装JDK 1.8 时,它还会询问您是否也要安装JRE

即使jdk最新版本是221,jre最新版本是261,为什么 它会一直保存 jre 251 文件夹吗?为什么它不删除它?我是不是该 删除它?

是的,删除它是安全的。

为什么我的 javac 也没有更新?为什么“where”命令指向 直接到221文件夹名称..更新时会改变吗?

命令javacJDK 的一部分;不是JRE。因此,where javac 将始终为您返回JDK 的安装位置。

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 2017-09-15
    • 2014-08-17
    • 2019-04-19
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多