Eclipse 中必须配置 JDK(而非 JRE)才能正常编译调试及使用新语法;需在 Installed JREs 中添加 JDK 根路径,并在项目级设置 Java Build Path、Compiler Compliance 和 Project Facets 保持版本一致。

在 Eclipse 中设置 Java 运行环境,核心是让 IDE 正确识别 JDK(不是仅 JRE),否则无法编译、调试、使用新语法(如 var、record)、或触发 Maven/Gradle 的源码级别推断。
确认已安装 JDK,而非仅 JRE
Eclipse 依赖 JDK 提供的 javac、javadoc、jdk.jshell 等工具。只装 JRE 会导致:Build path specifies execution environment 'JavaSE-17' but no JRE is compatible 类错误。
- 在终端运行
java -version和javac -version,输出版本号必须一致且非空 - Windows 用户注意:避免从 Microsoft Store 安装的 Java(它只提供 JRE),优先用
Adoptium (Eclipse Temurin)或Oracle JDK - Mac 用户若用
brew install openjdk,需记下实际路径(如/opt/homebrew/opt/openjdk/libexec/openjdk.jdk)
在 Eclipse 中配置 Installed JREs
这是全局级 JDK 注册入口,所有项目默认从中选择运行时。路径:Preferences → Java → Installed JREs(macOS 是 Eclipse → Preferences)。
- 点击
Add…→ 选Standard VM→Next -
JRE home必须指向 JDK 根目录(例如/usr/lib/jvm/temurin-17-jdk-amd64,不是.../jre子目录) - 填完后勾选该条目使其生效;若列表为空,Eclipse 将无法创建任何 Java 项目
- 多个 JDK 可共存(如 8/17/21),但每个项目只能绑定一个 —— 绑定逻辑在项目级设置中覆盖此处
为单个项目指定 Java 版本(Project Facets / Compiler Compliance)
即使全局 JRE 已配好,项目仍可能因 Java Build Path 或 Project Facets 设置错乱而报红,典型现象:The method XXX is undefined for the type YYY(实为用了高版本 API 却设成低版本编译)。
1、演示:以截图为准 程序试用后台:http://你的域名/admin/login.asp 后台登陆帐号:admin 密码:admin 说明: 这个是基于asp+access的企业网站源码,数据库已设有有防下载,网站更安全 要修改网站,自定义你自己要的页面,和美化页面都是你自己完成,网站源码程序完整,后台功能强大。 调试运行环境:要安装IIS服务器(IIS的安装和配置,安装好后,在地址栏输入:h
立即学习“Java免费学习笔记(深入)”;
- 右键项目 →
Properties → Java Build Path → Libraries:展开JRE System Library,确认其版本与预期一致;若显示Execution Environment,点Edit…切换到对应 JDK - 右键项目 →
Properties → Java Compiler:勾选Enable project specific settings,把Compiler compliance level设为与 JDK 匹配(如 JDK 17 → 选17) - 若用 Dynamic Web Project 或 Maven,还需检查
Properties → Project Facets中Java版本是否同步(例如 Facet Java 17 + Compiler 17 + JRE Library 17)
常见陷阱与验证方式
配置看似完成,但以下情况仍会导致运行失败:
- Maven 项目忽略 Eclipse 设置:检查
pom.xml中是否有maven-compiler-plugin显式指定source/target,它会覆盖 Eclipse 的 compiler setting - 新建项目默认用老版本:Eclipse 新建向导默认沿用上一个项目的 JDK 设置,务必在
New Java Project → JRE下拉框中手动确认 - 控制台输出乱码:不是 JDK 问题,而是
Run Configurations → Common → Encoding未设为UTF-8
快速验证是否生效:新建类,写 var s = "hello";(Java 10+ 特性),不报错即说明 JDK 10+ 已正确加载并启用局部变量类型推断。









