Java中JDK、JRE、JVM概念
在 Java 中,JDK、JRE、JVM 是三个核心概念,它们共同支撑 Java 程序的开发和运行,三者的关系可以简单概括为:JDK 包含 JRE,JRE 包含 JVM。具体区别如下:
1. JVM(Java Virtual Machine,Java 虚拟机)
- 定义:是 Java 跨平台特性的核心,是一个虚构的计算机(软件模拟的运行环境),负责将 Java 字节码(
.class
文件)解释或编译为当前操作系统可执行的机器码。 - 作用:屏蔽不同操作系统的底层差异,使得同一份 Java 字节码在 Windows、Linux、macOS 等平台上都能运行(“一次编写,到处运行”)。
- 特点:本身不直接执行 Java 源代码,只识别字节码;不同平台需要安装对应的 JVM 实现(但对开发者透明)。
2. JRE(Java Runtime Environment,Java 运行时环境)
- 定义:是运行 Java 程序的最小环境,包含执行 Java 程序所需的全部组件。
- 组成:
- JVM:字节码的运行核心。
- 核心类库:Java 标准库的基础部分(如
java.lang
、java.util
等包),提供基本功能支持。 - 其他支持文件:确保 JVM 正常运行的配置文件、资源文件等。
- 用途:如果只需要运行已编译好的 Java 程序(如
.class
或.jar
文件),安装 JRE 即可。
3. JDK(Java Development Kit,Java 开发工具包)
- 定义:是 Java 开发人员使用的工具集,包含开发 Java 程序所需的所有工具和环境。
- 组成:
- JRE:包含 JVM 和运行时类库(因此安装 JDK 后无需单独安装 JRE)。
- 开发工具:如编译器(
javac
,将.java
源代码编译为.class
字节码)、调试器(jdb
)、文档工具(javadoc
)、打包工具(jar
)等。 - 额外类库:包含一些开发阶段专用的类库(如
tools.jar
)。
- 用途:用于开发 Java 程序,必须安装 JDK 才能编写、编译代码。
三者关系总结
JDK = JRE + 开发工具(编译器、调试器等)
JRE = JVM + 运行时类库 + 支持文件
简单说:
- 开发 Java 程序 → 用 JDK(需要编译、调试);
- 运行 Java 程序 → 用 JRE(只需执行字节码);
- 跨平台运行的核心 → JVM(解释字节码为机器码)。