网站首页 > 技术文章 正文
一、用开面包店的故事讲清楚核心区别
想象你要开一家面包店:
- JRE就像顾客区:摆着桌椅和展示柜,顾客可以直接享用面包(运行Java程序)
- JDK则是整个面包店:不仅有顾客区(JRE),还包含后厨(编译器)、研发室(调试工具)和仓库(类库)
一句话总结:
JRE=能吃面包的地方(运行环境)
JDK=能做+能吃面包的地方(开发+运行环境)
二、3张图看懂技术区别
1. 组成结构对比
特性 | JRE | JDK |
核心功能 | 运行Java程序 | 开发+运行Java程序 |
包含组件 | JVM+类库 | JRE+编译器+调试器 |
用户群体 | 普通用户 | 开发者 |
典型大小 | 100-200MB | 300-500MB |
2. Java 9模块化革命
重大变化:
- 移除传统rt.jar,改用jmod模块文件
- 支持自定义运行时镜像(最小可至40MB)
- 强封装性:模块间需显式声明依赖
3. JRE的消失之谜
Java 11后官方不再提供JRE,替代方案:
# 生成自定义运行时
jlink --module-path jmods --add-modules java.base --output myjre
三、开发者必知的3个坑
1. 安装误区
只装JRE导致无法编译:javac: command not found
正确姿势:安装JDK并配置环境变量
2. 环境变量优先级陷阱
Windows系统中Java路径优先级:
- System32目录 > 2. JAVA_HOME > 3. 其他Path路径
解决:清理System32下的java.exe
3. 多版本切换问题
# 错误示例:同时存在JDK8和JDK11时
java -version # 可能显示11而非预期的8
解决:修改Path中JDK路径顺序
四、真实生产事故警示
某支付系统因JVM参数设置错误导致OOM:
# 错误配置
-Xms8g -Xmx8g -Xmn8g # 年轻代大小等于堆大小
# 正确配置(年轻代通常设为堆大小的1/3)
-Xms8g -Xmx8g -Xmn3g
教训:JDK工具链中的jconsole可实时监控JVM状态
五、2025年最新版选择指南
场景 | 推荐版本 | 理由 |
企业开发 | JDK 17 LTS | 长期支持至2029年 |
学习入门 | JDK 21 | 虚拟线程等新特性 |
老旧系统 | JDK 8 | 兼容性最佳 |
提示:通过java -version和javac -version验证安装是否正确
六、一句话区分
- 如果你是用户:双击jar文件运行 → 需要JRE
- 如果你是开发者:写代码编译 → 需要JDK
(注:本文所有架构图来源网络,案例参考Oracle官方文档及CSDN技术博客)
猜你喜欢
- 2025-09-01 大量类加载器创建导致诡异FullGC_类加载器加载配置文件
- 2025-09-01 数据库界的swagger,连接数据库直接生成数据库文档
- 2025-09-01 技术人生——第2集:膨胀自信,午夜凶铃
- 2025-09-01 Java的反射,是“动态”的利器,还是“性能”的杀手?
- 2024-11-07 Oracle 11G RAC集群CRS维护 oracle rac维护命令
- 2024-11-07 冒用有效签名:Clop勒索病毒这股”韩流“已入侵国内企业
- 2024-11-07 Oracle 11g 单机环境安装补丁实战
- 2024-11-07 Oracle 一键巡检自动生成 Word 报告
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)