为什么JVM被称为虚拟机而JRE不被称为虚拟机?
为什么JRE不被称为虚拟机
- JVM(Java虚拟机)的核心定位是通过软件实现的抽象计算模型,它完整模拟了物理机的指令执行、内存管理、寄存器调度等核心计算机能力,完全符合「虚拟机」的定义——即软件模拟的、具备完整硬件功能、运行在隔离环境中的计算系统,因此直接以虚拟机命名。
- JRE(Java运行环境)是Java程序运行所需的全量配套集合,它的组成除了核心JVM之外,还包含Java核心类库(如
java.lang、java.io等基础类包)、字节码校验器、以及各类支撑Java程序运行的辅助工具组件,本身是一个生态集合,而非单一的虚拟计算实体。 - 两者的从属关系是JVM是JRE的核心组成部分,「虚拟机」的属性仅匹配JVM本身的定位,JRE因为包含大量不属于虚拟计算范畴的类库和配套工具,自然不能被称为虚拟机。
通俗类比:JVM相当于软件模拟出来的裸主机,JRE相当于这台裸主机加上预装的基础操作系统、通用运行库的整套环境,显然只有裸主机本身符合「计算机(虚拟机)」的定义,包含配套软件的整体套装不属于这个范畴。
内容的提问来源于stack exchange,提问作者adwaita jadhav
相关产品推荐
相关产品推荐

