竹笋

首页 » 问答 » 灌水 » JDK,JRE,JVM三者间的关系是什么
TUhjnbcbe - 2025/2/9 18:36:00

一、JDK,JRE,JVM是什么?

JDK(javadevelopmentkit):编译环境。Java开发工具包。JDK是整个Java开发的核心,它集成了JRE和一些好用的小工具。例如:javac.exe,java.exe,jar.exe等。JDK包括了Java运行环境JRE(JavaRuntimeEnvirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即JavaAPI包括rt.jar)。

通常在安装好JDK之后,JRE也会自动安装好

JRE(javaruntimeenvironment):运行环境。负责装载用户自定义的类(分为从本地装载和从网络装载两种)和javaAPI类。

JVM:平台软件,负责将字节码解释成机器码并提交操作系统执行。换句话说,JVM就是Java虚拟机。它只认识xxx.class这种类型的文件,它能够将class文件中的字节码指令进行识别并调用操作系统向上的API完成动作。所以说,jvm是Java能够跨平台的核心,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。jvm调用解释所需的类库lib,而jre包含lib类库。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行(跨平台性:不同的浏览器安装不同的java虚拟机,jvm将字节码与对应操作系统相映射,达到java程序的跨平台性)。

简单来说三者的关系是:JDKJREJVM。

如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

二、JDK、JRE、JVM关系

JDK=JRE+开发工具集(例如Javac编译工具等)

JRE=JVM+JavaSE标准类库

联系与区别:

1.我们利用JDK写了自己的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等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。jdk是给开发人员使用的,jre和jvm是给普通用户使用。

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

1
查看完整版本: JDK,JRE,JVM三者间的关系是什么