jdk是面向开发者的完整工具包,含编译器、调试器等;jre仅提供运行环境,含jvm和核心类库;jdk内置jre,装jdk即具备运行能力。

核心区别就一句话:JDK 是给开发者用的“全套工厂”,JRE 是给用户用的“成品播放器”。JDK 能编译、调试、运行 Java 代码;JRE 只能运行已编译好的 .class 或 .jar 文件,不能写代码、不能编译。
功能定位完全不同
JDK(Java Development Kit)面向开发全流程:
-
javac:把
.java源文件编译成字节码 - jdb、jconsole、jvisualvm:调试和监控程序行为
- javadoc:从注释生成 API 文档
- jar:打包资源和类文件
JRE(Java Runtime Environment)只做一件事:运行字节码。它不带任何编译或调试能力,只含:
- JVM:加载、校验、解释或即时编译执行字节码
-
核心类库(如
java.lang、java.util):提供基础功能支持
JDK 内部就包含 JRE
安装 JDK 后,在其目录下一定能看到 jre/ 子目录(例如 jdk-17.0.2/jre/),这就是它自带的运行环境。也就是说:
- JDK = JRE + 开发工具 + 头文件(include)+ 工具类库(tools.jar)
- 装了 JDK 就自动具备运行能力,无需再单独装 JRE
- 从 Java 9 开始,Oracle 不再提供独立下载的 JRE 安装包,只随 JDK 发布
适用场景明确分开
选哪个,取决于你要做什么:
- 写 Java 代码、改 bug、打 jar 包 → 必须用 JDK
- 只是双击运行一个别人写的 .jar 程序(比如某款桌面工具)→ JRE 就够了
- 服务器部署时,若只运行 Spring Boot 打包好的 jar,可使用 jlink 构建最小化运行时镜像,比完整 JRE 更轻量
验证是否装对了很简单
打开终端,执行两行命令:
-
java -version→ 查看 JRE 运行环境版本 -
javac -version→ 查看 JDK 编译器版本
如果第二条报 “command not found”,说明你只装了 JRE,或者 PATH 没配对 JDK 的 bin 目录。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











