必须选Standard VM而非Execution Environment或Directory类型,因其是注册完整JDK(含javac)的唯一入口;JRE home须指向JDK根目录(如C:\Program Files\Java\jdk-21),不可选jre子目录;添加后需手动勾选左侧复选框并点击Apply and Close,否则设置无效。

点 Add 之后选 Standard VM,不是 JRE Directory
很多人卡在第一步:点击 Installed JREs 页面的 Add 按钮后,误选了 Execution Environment 或 Directory 类型。必须选 Standard VM —— 它才是用来注册完整 JDK(含 javac)的入口。选错会导致后续路径无法识别编译器,项目能运行但不能编译。
JRE home 必须指向 JDK 根目录,不是 jre 子目录
常见错误是把路径设成 /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/jre 或 C:\Program Files\Java\jdk-21\jre。OpenJDK 17+ 已移除独立 jre 目录,JRE home 应直接填 JDK 安装根路径:
- macOS(ARM):
/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home - Windows:
C:\Program Files\Java\jdk-21 - Linux(手动解压):
/opt/jdk-17.0.8
验证方式:打开该路径,确认里面有 bin/javac 和 lib/modules(不是 rt.jar)。
添加后不勾选 = 白配
Eclipse 不会自动启用新添加的 JDK。即使路径正确、名称显示正常,如果没手动勾选左侧复选框,所有新项目仍默认用旧 JRE。老版本 Eclipse(如 4.13)甚至可能因此报 java was started but returned exit code=1。
额外注意:
- 多个 JDK 可共存,比如同时注册
jdk8和jdk21,方便切换 - 勾选后点
Apply and Close,否则设置不生效 - 若列表里已有同名条目(如两个
jdk-21),Eclipse 不会覆盖,而是新增一行,容易混淆
项目级 JDK 绑定要两步走:Build Path + Compiler
全局配置只影响新建项目。已有项目必须手动绑定,且需同步调整编译器级别:
- 右键项目 →
Properties→Java Build Path→Libraries→ 移除旧的JRE System Library→Add Library→JRE System Library→ 选Alternate JRE并挑出刚注册的 JDK - 同一
Properties窗口 →Java Compiler→ 勾选Enable project specific settings→ 把Compiler compliance level设为对应版本(如 21)
漏掉第二步,可能出现 Cannot switch from source level 17 to 21 类报错,尤其在使用 record 或 sealed 等新语法时。
JAVA_HOME,也不管系统 PATH 里有没有 javac,只认你亲手点进 Directory 框选中的那个文件夹里是否真有可执行的 bin/javac 和模块化运行时结构。路径对了,勾选了,项目里再对齐编译级别——这三件事缺一不可。


















