JVM、JRE、JDK的作用与区别

2022-05-23 15:13:49 浏览数 (1)

一、引言

在Java环境配置和项目启动中,这三者的配置是项目启动的基础保证,但这三者的作用和区别呢,本文将对JVM、JRE、JDK的作用与区别进行讲解。

注:如果只是运行Java程序,只需要JRE即可,JRE通常非常小,其中包含了JVM,如果要开发Java程序,就需要安装JDK。

二、方法

  1. JVM,JRE,JDK定义 JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的”虚拟计算机”。一般与OS操作系统打交道。 JRE(Java Runtime Environment),包含Java虚拟机、库函数、运行Java应用程序所必须的文件。 JDK(Java Development Kit),包含JRE,以及增加编译器和调试器等用于程序开发的文件。
  2. 三者的区别与联系
    1. 联系 JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的JRE目录里面有两个文件夹bin和lib,在这里可以认为bin就是JVM,lib中则是JVM工作所需要的类库,而JVM和lib和起来就称为JRE。JVM lib=JRE。总体来说,就是我们利用JDK(调用Java Api)开发了属于我们自己的Java程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成Java字节码,在JRE上运行这些java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。
    2. 区别

JDK和JRE区别:在bin文件夹目录下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(运行程序的人)是不需要的。JDK还有jar.exe,javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。

JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。

通过对JVM,JRE,JDK的描述,我们就能看出三者之间的关系:

JDK: javac,jar,debugging,tools,javap

JRE:java,javaw,libraries,rt_jar

JVM:just in Time Compiler(JIT)

三、结语

搞懂三者的关系,能够让我们对java底层运行原理有一个良好的认知基础,以及加强我们对环境配置的了解。

稿件来源:深度学习与文旅应用实验室(DLETA)


作者:彭诚

主编:欧洋

0 人点赞