JDK 能编译也能运行,JRE 只能运行;javac 找不到说明只装了 JRE;装了 JDK 却提示缺运行环境是因 IDE 或注册表指向错误 JRE;服务器仅运行 .jar 用 JRE 即可,调试需 JDK;Java 11+ 官方不再单独提供 JRE。

JDK 能编译也能运行,JRE 只能运行——这是你装哪个、怎么配环境的唯一判断依据。
javac 找不到?说明你只装了 JRE
你在命令行敲 javac HelloWorld.java,却收到 'javac' is not recognized as an internal or external command,基本可以断定:系统 PATH 指向的是 JRE 目录,或者根本没装 JDK。
- JRE 安装包里压根没有
javac.exe,只有java.exe和jvm.dll - JDK 安装后,
javac一定在C:\Program Files\Java\jdk-21.0.2\bin\下 - 检查方法:直接进安装目录看
bin文件夹里有没有javac.exe;再查PATH环境变量是否包含该路径
装了 JDK 为什么还提示“找不到 Java 运行环境”?
常见于 IDE(如 IntelliJ 或 Eclipse)启动失败、或双击 .jar 文件报错。这不是缺 JRE,而是 JVM 启动参数或默认 JRE 配置指向了错误位置。
- JDK 自带一套 JRE(位于
jdk-21.0.2\jre\),但某些旧版工具会优先读取注册表或系统级 JRE(如C:\Program Files\Java\jre1.8.0_391\) - IDE 的
Project Structure → SDKs里若选了 JRE 而非 JDK,就无法识别源码依赖和注解处理器 - 双击
.jar时,Windows 默认用注册表中HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment指定的 JRE,哪怕你 PATH 里是 JDK
部署服务器要不要装 JDK?
只运行 Spring Boot 打包好的 .jar 文件,JRE 就够用;但如果你要在服务器上热编译、用 jstack 查线程、或跑 jvisualvm 分析内存,就必须装 JDK。
立即学习“Java免费学习笔记(深入)”;
- JRE 占用更小(约 100MB),适合容器镜像精简部署;JDK 通常 300MB+,含大量调试/诊断工具
- Java 11 开始,官方已不再单独提供 JRE 下载,JDK 成为事实标准;但你可以用
jlink自定义最小运行时镜像 - 云厂商镜像(如 Amazon Corretto、Alibaba Dragonwell)常提供 “JRE-only” 版本,本质是裁剪后的 JDK,仍含
java命令,但无javac
真正容易被忽略的点是:JDK 中的 java 命令,实际调用的是它自带 jre\bin\ 下的可执行文件,而不是你自己 PATH 里混进去的另一个 JRE —— 所以别以为 PATH 里有 java 就万事大吉,javac 和 java 必须来自同一套 JDK 才能保证版本一致、类库兼容。










