JDK是面向开发者的完整工具包,含编译器、调试器等,能编译调试运行Java程序;JRE仅面向运行环境,只含JVM和类库,只能运行已编译的.class文件;JDK内置JRE,结构更全,适用开发场景,JRE更轻量,适用于生产部署。

JRE和JDK最核心的区别在于:JDK是给开发者用的,它能编译、调试、运行Java程序;JRE只负责运行已编译好的Java程序,不带任何开发能力。
功能定位不同:开发 vs 运行
JDK(Java Development Kit)是一套完整的开发工具包,面向程序员。它包含编译器(javac)、调试器(jdb)、文档生成器(javadoc)、打包工具(jar)等,用于从写代码到发布全流程。
JRE(Java Runtime Environment)是运行环境,面向普通用户或部署服务器。它只含Java虚拟机(JVM)和Java标准类库(如rt.jar),用来加载、校验、执行.class字节码文件。
- 写.java源文件 → 必须用JDK中的javac编译成.class → 这一步JRE做不到
- 运行已有的.class或.jar文件 → JRE就够了,不需要javac或其他开发工具
- 开发中常需反复编译+运行+调试 → JDK自带JRE,所以装了JDK就自动具备运行能力
组成结构不同:JDK包含JRE
JDK内部其实就“裹着”一套JRE——通常在jdk/jre/目录下。也就是说,JDK = JRE + 开发工具集(bin目录下的各种.exe/.sh命令)+ 头文件(include)+ 工具类库(tools.jar)。
立即学习“Java免费学习笔记(深入)”;
JRE本身结构精简,只有两个关键部分:
- bin/:含java启动器和JVM(如jvm.dll或libjvm.so)
- lib/:含核心类库(rt.jar、ext/扩展包等)
如果你在系统里同时装了独立JRE和JDK,很可能看到两套JRE目录:一套在C:\Program Files\Java\jreX,另一套在C:\Program Files\Java\jdkX\jre,内容基本一致。
安装与使用场景不同
日常开发必须装JDK,IDE(如IntelliJ、Eclipse)底层依赖它的编译器和调试接口;而生产服务器若只部署现成的Spring Boot jar包,只需JRE即可,更轻量、更安全(少暴露开发工具面)。
- 学生写第一个HelloWorld → 装JDK,配好JAVA_HOME和PATH
- 公司内网终端运行一个Java报表工具 → 只装JRE,省空间、免误操作
- Docker镜像优化 → 基于eclipse-jre或amazoncorretto-jre比用jdk镜像体积小50%以上
怎么确认自己装的是哪个?
打开终端,运行:
java -version # 显示JRE版本信息(所有情况都可用)
javac -version # 若提示“command not found”,说明没装JDK或未配置PATH
再看安装路径:
- 路径含jdk字样(如jdk-17.0.2)→ 是JDK
- 路径含jre字样(如jre1.8.0_391)→ 是纯JRE
- JDK安装后,jdk/bin/java和jdk/jre/bin/java其实是同一个可执行文件的两个软链接或副本,优先走jdk/bin(因PATH通常指向此处)










