JVM
JVM(Java Virtula Machine)是用于运行Java字节码的虚拟机,它是实现Java跨平台特性的核心。JVM负责执行Java程序的字节码,使得相同的Java程序能够在不同的操作系统上运行。JVM在执行字节码时,会将其转换成具体平台上的机器指令。因此,JVM可以被是为一个抽象的计算机,它为Java程序提供一个于平台无关的运行环境。
JRE
JRE(Java Runtime Environment)是Java程序是运行环境,它包含了JVM和Java程序运行所需的核心类库。JRE是运行编译后的Java程序的实际场所,提供了Java程序运行必须的环境集合。如果只需要运行Java程序,而不进行程序的开发,那么只需安装JRE即可。JRE中的lib目录包含了JVM运行所需的类库,而bin目录则可以认为是JVM的实际位置。
JDK
JDK(Java Development Kit)是专门为Java开发人员提供的产品。JDK包含了JRE,此外还包括了一系列的Java开发工具。如编译器(javac)、打包工具(jar)等。JDK的lib目录包含了类库,并bin目录则提供了开发过程中所需的工具。因此,如果需要进行Java程序的开发,就必须安装JDK。安装了JDK之后,就无需单独安装JRE,因为JDK已经包含了运行Java程序所需的环境。
三者的关系
简单来说,JDK、JRE和JVM的关系就是:JDK包含JRE,而JRE包含JVM。JDK提供了完整的Java开发环境,JRE提供了Java程序运行环境,而JVM则是这一切的基础,负责字节码到机器码指令的转换,以及内存管理等。这三者共同构成了Java平台的基础,使得Java程序能够在各种平台上运行,体现了Java的一次编写,到处运行的特性。