提示

本文主要讲解 JVM、JRE、JDK 三者的区别。@ermo

# JVM、JRE 和 JDK 的区别

这三个词语在 Java 编程中经常出现,所以在学习 Java 编程前,需要简单了解下三者的概念以及它们分别是做什么的。

# JVM

JVM(Java Virtual Machine)通常称为 Java 虚拟机,之所以称为“虚拟”机就是因为它是不存在的,它是一种标准,定义了可以执行 Java 字节码的运行环境所具备的必要条件。这里要说明下,并不是只有 Java 代码可以编译成字节码,其他语言编写成的字节码文件同样可以在 JVM 虚拟机上执行。

JVM 是依赖操作系统的,不同的操作系统都要有不同的 JVM 实现,Java 语言本身是不依赖于操作系统的,这也是早期 Java 火起来的一个原因:一次编写,到处运行(Write once, run anywhere)。

# JRE

JRE(Java Runtime Environment)通常称为 Java 运行环境,JRE 一般面向的是 Java 程序的使用者,而不是开发者。只安装 JRE 的系统只能运行编译好的 Java 程序,不能编译和调试 Java 程序。JRE 与 JVM 的区别是,前者真正存在的,包含 JVM 的标准实现和 Java 核心类库。

# JDK

JDK(Java Development Kit)通常称为 Java 开发工具集或 Java 开发工具包,提供了 Java 开发环境和运行环境。JDK 是面向开发人员的,JDK 除了包括 JRE 中 JVM 实现和核心类库外,还包含例如 javac 这样的开发工具。JDK 是 Java 语言的核心,开发人员在 Oracle 官网下载的通常就是 JDK 工具包。