原文链接
https://www.g2022cyk.top/archives/%E4%BA%86%E8%A7%A3jdkjre%E4%B8%8Ejvm
JDK
Java 开发工具包:JDK是Java Development Kit的缩写,JDK是Java语言的软件开发工具包(SDK)。提供了java开发、编译、运行 Java 程序所需的各种工具和资源,包括 Java 编译器、Java 运行时环境,以及常用的 Java 类库等。
JDK 是提供给 Java 开发人员使用的,在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
JRE
Java 运行环境:JRE是Java Runtime Environment的缩写,JRE的内部有一个Java虚拟机(Java Virtual Machine)以及一些标准的类别函数库(Class Library),JRE是运行java字节码文件必备的工具。
普通用户而只需要安装 JRE(Java Runtime Environment)来运行 Java 程序。而程序开发者必须安装 JDK 来编译、调试程序,jre目录里面有两个文件夹 bin 和 lib,在这里可以认为 bin 里的就是 jvm,lib 中则是 jvm 工作所需要的类库,而 jvm 和 lib 和起来就称为 jre。
JVM
Java 虚拟机:JVM是Java Virtual Machine的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,是 JRE 的一部分,它是整个 java 实现跨平台的最核心的部分,负责解释执行字节码文件,是可运行 java 字节码文件的虚拟计算机。所有平台的上的 JVM 向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。
JVM有针对不同平台的版本,它们可以运行相同的java代码编译的字节码文件,这使得Java代码实现的跨平台。
Java 语言的跨平台与执行过程
JVM(Java 虚拟机)是 Java 语言跨平台的核心机制。不同平台有不同的虚拟机,只有某平台提供了对应的 JVM,java 程序才可以在此平台运行。JVM 屏蔽了底层运行平台的差别,使得 Java 程序可以“一次编译,到处运行”。
三者关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a9l7yNcx-1666093001900)(https://11.g2022cyk.top:85/wp-content/uploads/2022/10/1665452121-下载.png)]
- JDK 用于开发,JRE 用于运行 java 程序 ;如果只是运行 Java 程序,可以只安装 JRE,无序安装 JDK。
- JDK 包含 JRE,JDK 和 JRE 中都包含 JVM。