Eclipse启动提示“No Java virtual machine was found”或JRE System Library显示unbound,说明未正确配置外部JDK;需先验证java -version和javac -version可用,再在Preferences→Java→Installed JREs中手动添加JDK根目录,最后为项目指定JRE。

Eclipse 启动时提示 “No Java virtual machine was found” 或新建项目时 JRE System Library 显示 unbound,说明 Eclipse 没有正确识别或绑定已安装的 JDK —— 这不是 Eclipse 自带 Java,它必须依赖外部 JDK 运行和编译。
确认系统已安装可用的 JDK
别急着打开 Eclipse,先验证 JDK 是否真装好了、且能被命令行调用:
- 在终端(Windows 用 CMD/PowerShell,macOS/Linux 用 Terminal)执行
java -version和javac -version,两者都应输出版本号(如17.0.1),否则 Eclipse 无法编译 Java 代码 - 执行
where java(Windows)或which java(macOS/Linux),得到路径后,往上推一级目录就是 JDK 根目录(例如C:\Program Files\Java\jdk-17.0.1或/Library/Java/JavaVirtualMachines/jdk-17.0.1.jdk/Contents/Home) - 注意:仅安装 JRE 不够,Eclipse 编译需要
javac,必须是完整 JDK
在 Eclipse 中配置 Installed JREs
这是最常漏掉的一步:Eclipse 不会自动扫描系统 JDK,需手动注册。
- 打开 Eclipse → Preferences(Windows/Linux)或 Eclipse → Preferences(macOS)
- 左侧导航进入
Java → Installed JREs - 点击
Add...→ 选择Standard VM→ 点击Next - 在
JRE home栏点击Directory...,选中你刚才确认的 JDK 根目录(不是bin,不是jre子目录) - 点
Finish,勾选刚添加的条目使其生效 - 此时
JRE System Library在项目中仍可能显示 unbound —— 这是正常现象,下一步解决
为单个项目设置 JRE(Project-specific JRE)
全局配置只告诉 Eclipse “有哪些 JDK 可用”,每个项目还需明确指定用哪一个。
立即学习“Java免费学习笔记(深入)”;
- 右键项目 → Properties
- 左侧选
Java Build Path→ 切到Libraries标签页 - 展开
JRE System Library,选中它 → 点击右侧Remove - 再点
Add Library...→ 选JRE System Library→Next - 选择
Workspace default JRE(推荐)或Alternate JRE(若需多版本切换)→Finish - 如果项目是 Maven 的,还要检查
pom.xml中的maven-compiler-plugin版本与 source/target 是否匹配 JDK 版本,否则编译报错但错误提示不指向 JRE 绑定问题
常见陷阱与静默失败场景
很多“绑定了却还是报错”的情况,根源不在界面操作,而在路径或权限细节:
- Windows 用户从 Oracle 下载的 JDK 默认路径含空格(如
Program Files),Eclipse 旧版本(C:\jdk17) - macOS 上通过 Homebrew 安装的 OpenJDK,路径类似
/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home,不能只选到openjdk.jdk层就停 - Eclipse.ini 文件里如果硬编码了
-vm参数,会强制覆盖 Preferences 设置 —— 检查该文件是否包含类似-vm\nC:\wrong\path\bin\javaw.exe的行 - 64 位 Eclipse 必须配 64 位 JDK,混搭会导致启动直接失败,错误日志里会出现
arch mismatch类字样
真正卡住的地方往往不是“怎么点菜单”,而是 JDK 路径是否干净、eclipse.ini 是否被悄悄改过、以及项目性质(普通 Java / Maven / Gradle)对 JRE 绑定的隐式要求不同。动手前先跑通 javac -version,比在 Eclipse 里反复刷新 Properties 有用得多。










