安装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