JVMJREJDK的作用与区别

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVMJREJDK的作用与区别相关的知识,希望对你有一定的参考价值。

一、引言

在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) 


作者:彭诚

主编:欧洋

以上是关于JVMJREJDK的作用与区别的主要内容,如果未能解决你的问题,请参考以下文章

JVMJREJDK的区别

简述JVMJREJDK的关系及作用

Java运行机制与JVMJREJDK--是什么

见刊编辑推荐《价值工程》期刊杂志技术经济管理教育等多学科专业稿件都可以投

JVM笔记

JVM笔记