Java JDK、JRE、JVM 三者到底有什么区别?
·
前言
初学 Java 经常被三个名词搞晕:JVM、JRE、JDK。很多人学了半个月依然不知道:为什么装 Java 要装 JDK?JRE 能不能单独运行程序?
本篇用最通俗的比喻,彻底区分三者关系、层级、作用。
一、三者层级关系(从大到小)
JDK 包含 JRE,JRE 包含 JVM
- JDK = 开发工具 + JRE
- JRE = 运行环境 + JVM
- JVM = 虚拟机核心
二、通俗生活化比喻
- JVM(虚拟机):发动机(核心运行引擎)
- JRE(运行环境):完整汽车(有发动机 + 基础配件,能跑不能造车)
- JDK(开发套件):汽车工厂(有整车 + 维修工具 + 生产工具,可以造车、改车、运行车)
三、详细作用区分
1. JVM Java 虚拟机
- 核心功能:翻译 class 字节码,跨平台运行
- 特点:
- 不识别.java 源码,只识别.class 文件
- 实现 Java「一次编译,到处运行」
- 使用者:所有运行 Java 程序的设备
2. JRE Java 运行环境
- 包含:JVM + 核心类库(String、ArrayList 等基础类)
- 作用:只负责运行 Java 程序,不具备开发能力
- 场景:服务器、普通用户只装 JRE 即可跑项目
3. JDK Java 开发工具包
- 包含:JRE + 编译工具、调试工具、打包工具
- 常用工具:javac、java、jar、jmap、jconsole
- 场景:开发者必须安装 JDK
四、新手高频误区
-
装 JRE 可以写代码吗? 不可以!没有 javac 编译命令,无法编译源码。
-
装 JDK 还需要单独装 JRE 吗? 不需要!高版本 JDK 自带完整 JRE。
-
为什么 Java 可以跨平台? 因为不同系统有不同 JVM,源码只编译一次,适配所有系统。
结语
记住一句话:开发用 JDK,运行用 JRE,跨平台靠 JVM。
更多推荐

所有评论(0)