JDK 和 JRE 和 JVM 分别是什么,有什么区别?
最后更新:1/13/2026
AI 助手
会员专享功能
只有会员才能使用 AI 生成答案功能。 立即升级
Other Answers (1)
Generated by DeepSeek V3
JDK、JRE 和 JVM 的区别与联系
1. JVM (Java Virtual Machine, Java虚拟机)
- 定义: JVM 是执行 Java 字节码的虚拟计算机
- 功能:
- 加载字节码(.class文件)
- 验证字节码
- 执行字节码
- 提供运行时环境
- 特点:
- "一次编写,到处运行"的关键
- 平台相关(不同操作系统需要不同JVM实现)
- 内存管理(垃圾回收)
2. JRE (Java Runtime Environment, Java运行环境)
- 定义: Java程序运行所需的环境
- 包含:
- JVM
- 核心类库(如java.lang, java.util等)
- 其他支持文件
- 用途:
- 运行已编译的Java程序
- 不包含开发工具(如编译器)
3. JDK (Java Development Kit, Java开发工具包)
- 定义: Java开发的全套工具
- 包含:
- JRE
- 开发工具(如javac, javadoc, jdb等)
- 额外的类库(开发专用)
- 用途:
- 开发Java应用程序
- 编译Java源代码
三者关系图示
JDK = JRE + 开发工具
JRE = JVM + 核心类库
实际应用场景
- 普通用户: 只需要JRE来运行Java程序
- 开发者: 需要JDK来开发Java程序
- 系统管理员: 可能需要关注JVM调优参数
代码示例
// 使用JDK中的javac编译此文件
public class HelloWorld {
public static void main(String[] args) {
// 使用JRE中的System类
System.out.println("Hello, World!");
}
}
总结对比表
| 组件 | 全称 | 包含内容 | 主要用途 | 目标用户 |
|---|---|---|---|---|
| JVM | Java虚拟机 | 字节码执行引擎 | 执行Java字节码 | 所有Java用户 |
| JRE | Java运行环境 | JVM + 核心类库 | 运行Java程序 | 终端用户 |
| JDK | Java开发工具包 | JRE + 开发工具 | 开发Java程序 | 开发者 |
理解这三者的区别对于Java开发者和系统管理员来说非常重要,特别是在环境配置和问题排查时。