安装JDK同时外加安装一个JRE(且JRE不用配置)

时间:2024-03-18 22:16:10

一、JDK和JRE

首先我们得知道JDK和JRE的区别
JDK是Java Development Kit,是Java的开发工具包,里面包含了各种类库和工具,因此也肯定包含JRE。
JRE是Java Runtime Environment,是Java程序的运行环境。既然是运行,就会包含JVM(虚拟机)

其结构关系如下:
安装JDK同时外加安装一个JRE(且JRE不用配置)

  • 可以看到,我们所有下载的IDE(集成开发环境)都会包含这三样东西,如MyEclipse,IntelliJ IDEA
  • JDK是开发工具包,就一定需要编译(javac.exe)和JRE(运行环境),当然也就需要虚拟机
  • JRE只是运行环境,则只需要包含一些类库和虚拟机就可以了

二、专用JRE和公共JRE

大家知道,当我们下载JDK时,我们会先选择一个JDK路径,然后还会选择一个JRE路径。可是当我们打开JDK的目录时,我们会看到里面还有一个jre的文件夹,那说明我们下载了两个JRE,这是为什么呢?

一个比较靠谱的说法是:

  • JDK里面的是专用JRE,因为需要专用 JRE 才能运行 JDK 中包含的工具,且专用 JRE 没有注册表设置。
  • 后面下载的那是公共 JRE,这个JRE 可由其他 Java 应用程序使用,所以会注册到 Windows 注册表。

所以当我们下载好JDK时,可以直接在cmd里输入java -version 就能够看到java version(公共JRE的自动配置),如下
安装JDK同时外加安装一个JRE(且JRE不用配置)
而如果我们需要JDK的开发工具包,对java源程序进行编译,此时就需要配置JDK环境了,因为我们要用到javac而这个JRE是没有的。

三、公共JRE的自动配置

因此这也解释了为什么我之前安装配置的JDK1.7
安装JDK同时外加安装一个JRE(且JRE不用配置)
而安装好JDK1.8但还没配置环境,在cmd里运行java -version就直接出现了java version 1.8

其实这也是因为公共JRE的运行环境被自动配置了,这个网上的一些说法是公共JRE的java.exe文件被自动放在了Windows/system32下,但我检查了并没有
安装JDK同时外加安装一个JRE(且JRE不用配置)
我本以为是因为我是64位操作系统,于是查看SysWOW64文件夹,也没有。
但环境配置里还有一句
安装JDK同时外加安装一个JRE(且JRE不用配置)
很明显,这个文件夹就是我的公共JRE的环境配置路径,打开看一下:
安装JDK同时外加安装一个JRE(且JRE不用配置)
很明显,这个修改日期就是我安装JDK 1.8的日期,覆盖了我原来安装java 1.7时安装的公共JRE相关的exe文件(java运行环境文件)。
OK,now We’ve found out some details.