一、JDK

JDK:Java Development Kit的简称,Java开发工具包,是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。

二、JRE

JRE:Java Runtime Enviroment的简称,Java运行环境,为Java的运行提供了所需的环境,它是运行已经编译的Java程序所需要的所有内容的集合,包括Java虚拟机(JVM),Java类库等。

三、JVM

JVM:Java Virtual Machine的简称,Java虚拟机,运行Java字节码的虚拟机,JVM有针对不同系统的特定实现(Windows, macOS, Linux),目的是使用相同的字节码,它们都得出相同的结果。Java程序就是运行在Java虚拟机上,针对不同的系统实现不同的JVM。所以Java语言可以实现跨平台。

jdk中的javac.exe编译工具将java代码编译成xxx.class 文件(字节码文件),jvm执行class文件(能够将class 文件中的字节码指令进行识别并调用操作系统上的API完成动作,也就是调汇编指令,让
cpu按照汇编指令去干活)。也正因为class文件和jvm所以才能跨平台,因为不同的平台有不同的jvm(可以自己去安装),但无论在哪个平台上运行,jvm所执行的class文件都是一样的(打包其实就是编译,并把编译后的文件以jar或war的形式分离出来,以便部署),所以能跨平台

四、总结

JDK包含了JRE,同时还包含了编译Java源码的编译器javac,还包含了很多Java调试和分析的工具。运行Java程序,安装JRE就够了,如果编写和调试Java程序,需要安装JDK。Java程序都是编译后交给JVM运行的。

总的来说,他们的基本包含关系是:JDK包含JRE,JRE包含JVM、核心类库。

运行Java程序的最小环境为JRE

开发Java程序的最小环境为JDK

 

JDK JRE JVM 的区别_java

JDK JRE JVM 的区别_jdk_02

JDK JRE JVM 的区别_jre_03