首页 >> 科普解惑 > 综合科普 >

jre 的作用和组成 详解手册

2026-11-08 16:54:07 来源:网易 用户:袁以梁 

JRE 全称 Java Runtime Environment,也就是 Java 运行环境,核心作用是提供可以运行已经编译好的 Java 字节码程序的完整环境,用户只需要运行 jar 包 class 文件的时候,只安装 JRE 就足够,不需要安装完整开发套件,它负责加载类文件 执行字节码 提供基础核心类库 处理内存管理 异常处理 图形界面支持等底层能力,很多初学者会混淆 JRE JDK JVM 三者关系,JRE 里面已经内置 JVM,但是 JRE 不包含编译器 javac,不能用来编写和编译 Java 源代码,本篇深度讲解 JRE 的核心作用 内部组成模块 工作流程,同时区分和 JDK JVM 的差异,适合 Java 入门学习,运维部署 Java 应用场景使用。

核心作用详细说明

第一 字节码执行支撑,Java 源码编译之后生成 class 字节码,字节码本身不能直接在操作系统运行,JRE 里面的 JVM 负责把字节码解释或者即时编译成当前操作系统可以识别的机器指令,实现跨平台运行。

第二 提供基础核心类库,Java 自带大量基础类,比如集合 IO 网络 多线程 时间日期类,这些类都打包放在 JRE 里面,Java 程序运行的时候直接调用,不需要开发者自己重复编写底层代码。

第三 运行时基础服务,包含垃圾回收 GC 内存分配 安全管理 系统属性读取 图形 AWT Swing 支持,网络通信底层接口,保障 Java 应用稳定运行。

第四 部署运行支撑,企业里面部署后端服务 桌面 Java 软件,服务器端一般只部署 JRE,降低安装包体积,只保留运行所需组件,不附带开发工具。

JRE 内部组成分层

第一层 JVM 虚拟机模块

这是 JRE 最核心部分,负责字节码执行,内部又分为类加载器 执行引擎 运行时数据区,运行时数据区包含堆 栈 方法区 程序计数器,执行引擎包含解释器和 JIT 即时编译器,垃圾回收器也属于 JVM 内部组件。

第二层 核心类库 rt 相关基础类库

也就是 Java 核心 API,是预先写好的类集合,包含 java.lang java.util shturl. java.net这些基础包,程序运行时调用这些类完成业务逻辑。

第三层 辅助组件

包含部署工具 插件 安全管理组件 国际化资源 字体支持 图形相关库,AWT Swing 图形组件,用于桌面 GUI 程序,还有 Java Web Start 相关组件,旧版本 JRE 还附带浏览器 Java 插件,现代新版本已经移除这个插件。

组成模块对照表

模块名称 所属层级 主要功能

JVM 核心执行层 加载执行字节码 内存管理 GC

核心类库 API 层 提供基础 Java 类 API 调用

辅助组件 扩展支撑层 安全 图形 部署 国际化

JRE JDK JVM 三者关系表格

项目 JRE JDK JVM

是否包含 JVM 是 是 本身就是 JVM

是否包含 javac 编译器 否 是 否

用途 运行 Java 程序 开发编译 Java 程序 字节码执行引擎

是否跨平台 是 是 是

运行工作流程

第一步 Java 程序启动,JRE 启动对应的 JVM 实例

第二步 类加载器按照规则加载需要的 class 字节码文件

第三步 执行引擎读取字节码,解释执行或者 JIT 编译为本地机器码

第四步 程序运行期间,自动调用核心类库里面的 API,GC 自动回收不再使用的内存

第五步 程序退出,JVM 释放全部运行内存资源,JRE 运行流程结束

重要补充知识点

旧版本 JRE 也就是 Java8 及之前版本,安装包体积比较大,里面包含浏览器插件,后来因为安全漏洞,高版本 Java 已经废弃浏览器插件,JRE 组件精简,从 Java9 之后模块化改造,JRE 独立安装包的设计发生变化,很多场景推荐直接使用 JDK,JDK 本身已经包含 JRE 全部运行能力。

命名冲突误区,很多人以为 JRE 只是单独一个软件,它不是单纯一个 exe 程序,是一整套文件目录体系,安装之后目录里面有 bin lib 等文件夹,bin 存放可执行启动程序,lib 存放类库文件。

整体总结,JRE 定位就是纯运行环境,核心由 JVM 加核心类库加辅助组件三大部分构成,核心使命就是让编译好的 Java 字节码跨平台运行,如果只需要运行 Java 程序选择 JRE,如果需要写代码编译源码就必须安装 JDK,JDK 是在 JRE 基础之上额外增加开发编译工具。

【常见问题】

问题 1 jre 的作用和组成里面,JRE 里面有没有 javac 编译器

回答 1 jre 的作用和组成里面,JRE 不包含 javac 编译器,javac 属于 JDK 开发工具组件,如果想要编译 java 源码,只安装 JRE 是无法完成编译操作的。

问题 2 jre 的作用和组成里面,JRE 和 JVM 是什么关系

回答 2 jre 的作用和组成里面,JVM 是 JRE 内部最核心组成部分,JRE 是完整运行环境,JVM 只是负责执行字节码的虚拟机模块,JRE 除了 JVM 之外还附带核心类库和辅助组件。

问题 3 jre 的作用和组成里面,服务器部署 Java 应用只装 JRE 可以吗

回答 3 jre 的作用和组成里面,如果服务器只需要运行已经编译完成的 Java 应用,不需要编译源码,单独安装 JRE 就可以满足运行要求,这也是生产服务器常用部署方案。

【免责申明】

本文属于 Java 基础技术科普,不同大版本 JRE 组件存在改动,Java9 之后模块化体系有调整,正式生产部署请对照对应版本官方文档,代码与部署方案仅用于学习参考。

 

相关阅读

最新文章