宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

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

如果您非常小心,在jdk安装完成后,您可能会发现有两个jre文件夹。

jdk中的

而且里面的文件都一样,另外我们配置环境变量的时候,可以不配置jre的环境变量吗?

在下一篇报道中进行了说明。

本文来自http://blog.csdn.net/Han _ dong Wei/article/details/7782771

虽然您可能会在安装JDK时选择是否安装单独的jre,但通常会一起安装。 我也建议这么做。 因为它有助于揭示差异:

Jre是Java运行时环境,是Java程序的执行环境。 既然要运行,就必须包含jvm,也就是大家熟悉的虚拟机。

此外,所有java类库的class文件都在lib目录下打包到jar中。 大家可以自己验证。 windows上的虚拟机是哪个文件?

学习过MFC的人知道什么是dll文件吧。 那么,让我们看看jre/丰富的海豚/client中是否有jvm.dll。 那就是虚拟机。

Jdk是java开发工具包,是包含各种类库和工具的java开发工具包。 当然还包括另一个Jre。

那么为什么要包括另一个Jre呢? jdk/jre/丰富的小海豚在客户端和服务器文件夹下均包含jvm.dll。 表明有两个虚拟机。 不知道大家有没有注意到这个?

众所周知,在jdk丰富的海豚下面有各种java程序所需的命令,但与jre丰富的海豚目录最明显的区别在于,只有在jdk下面才有javac。 这一点我很理解。 因为jre只是一个运行环境。

与开发无关,正因为如此,具有开发功能的jdk自己的jre下既有客户端的jvm,也有服务器的jvm,作为运行环境的jre下只有client的jvm.dll就足够了。

还记得在环境变量path中设置了jdk/丰富的海豚路径吗? 这是大家学习Java的第一步吧。 老师教大家不能使用javac和Java。 确实,jdk/丰富的海豚目录下包含所有命令。

但是,有谁认为我们使用的java命令不是在jdk/丰富的海豚目录下的,而是在jre/丰富的海豚目录下的? 我不认为可以做实验,但是大家把jdk/丰富的海豚目录中的java.exe剪切到其他地方,然后试着运行java程序,发现了什么? 一切都好!

那么有人会问吗? 我明明没有把jre/丰富的海豚目录设定为环境变量?

想想如果java要提供给很多人,他们不需要开发jdk,只有jre能运行java程序就好了。 那么,每个客户需要手动设置环境变量有多麻烦?

所以安装jre时,安装程序会自动将jre的java.exe添加到系统变量中。 验证的方法很简单。 大家在系统环境变量的path的开头添加了“%SystemRoot%\system32; %系统超级用户%; ”这样的配置,

现在,让我们到Windows/system32下看看。 你发现了什么? 有java.exe。

如果可以强制将jdk/丰富的海豚移动到system32变量之前,当然也可以强制它们使用jdk/jre中的java,但除非需要,否则不建议这样做。 使用单独的jre运行java程序也是客户环境中的测试之一。

这样就能更好地理解jdk和jre内部的联系和不同了吧?

汉克于!

2017-01-0821:55:00