Java | 为什么安装环境时需要两个 JRE

1,567 阅读3分钟

Java 环境的安装

Java 环境的安装不像 MySQL,支持 zip 解压式安装(MySQL 详细安装参考), 而是需要执行文件安装(虽然说是文件安装,但是后面下载的位置也可以自定义选择,下载完的文件都在一个文件夹里,效果也和绿色版的差不多)。

在执行安装过程中,它首先会要求安装 jdk,默认位置是 C:\Program Files(这个是可以自定义修改的),但是随后,它又要要求安装一个 jre,要求用户选择安装的位置,如下图所示。

Snipaste_2021-06-10_21-26-42.png

我们知道,JDK 是 Java SE Development Kit,Java 标准版开发包的意思(其中的 SE 分别表示 Stardard、Edition 的意思),它是一套用于开发 Java 程序的开发包,显然,是专门给开发人员用的。既然是专门为开发人员用的,里面一定包括一系列编译、运行 Java 程序所需要的各种工具和资源。

其中,也会有一个叫做 JRE 的文件夹。如下图所示。

Snipaste_2021-06-11_09-38-18.png

JRE ——Java Runtime Environment(Java 运行环境),顾名思义,是运行 Java 程序的条件。

那既然 jdk 里有了 jre,为什么还要在我们安装完 jdk 的时候另外安装一个默认 C 盘的 JRE 呢?这个可以不安装吗?有了 jdk 文件夹里的那个 jre 还不够吗?

解释:

原来,安装两套 jre 是为了分担工作。

如果用户只是执行 java 的程序时,那么有 jre 的环境就可以了。如果用户是开发者,既需要编译又需要运行等,系统就会去寻找包含 java、javac 等命令的父路径(环境变量),也就是 jdk 下的 jre。 这样,在运行外部程序的时候,找的就是 jre;在开发程序的时候,找的就是 jdk 下的 jre。

还有一个原因可以通过自己动手测试出来。在安装 JRE 之后,系统会自动将其添加到系统变量中。

如果你在安装好 jdk 和 jre 还没有去配置环境变量的时候,先打开命令行测试你会发现:

java 命令可以直接运行。(java 命令用于运行编译好的程序)

javac 命令会显示“不是内部命令”(javac 用于编译程序,将 .java 文件编译成 .class 文件)

命令行执行我们知道,只有有配置过环境变量的命令才可以像这样执行程序。

java 命令是用来运行的,JRE 里含有的指令。而 javac 命令是用来编译的,只有 jdk 下才有。前者可以执行,而后者不可以执行,说明为了大众使用,安装程序在安装完 JRE 后自动给 jre 配置到了环境变量。而 jdk 是开发者才会用到的,需要开发者手动去配置。

这又一次印证了 jre 和 jdk 是用于分担工作使用的。这也就是要安装“俩” jre 的原因。

参考链接

blog.csdn.net/ctx64563464…

安装jdk时,为什么会安装两个jre?不用配置jre的环境变量