
intellij idea 中使用 jdk 11 时出现 “package java.time does not exist” 错误,通常是因编译级别、maven 配置与 jdk 版本不一致导致;需同步设置项目语言级别、编译器目标字节码版本及 maven 的 source/target 版本。
java.time.Duration 是 Java 8 引入的核心时间 API,理论上 JDK 11 完全支持。但若 IDE 或构建工具仍以低版本(如 Java 7 或未显式指定)进行编译,则 java.time 包将不可见——这正是 driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)) 编译失败的根本原因。
要彻底解决该问题,请三步同步校准,确保从 IDE 到 Maven 全链路统一使用 Java 11:
✅ 步骤 1:设置模块语言级别(Project Structure)
- 路径:File → Project Structure → Modules → [你的模块] → Sources
- 将 Language level 明确设为 11 (Preview) - Local variable syntax for lambda parameters(或仅 11)
- ⚠️ 注意:仅设置 Project SDK(JDK 11)不够,必须显式指定 Language Level。
✅ 步骤 2:配置 IDE 编译器字节码版本
- 路径:File → Settings → Build, Execution, Deployment → Compiler → Java Compiler
- 将 Target bytecode version 设为 11
- 此设置影响 IntelliJ 内置编译器(如点击 ▶️ 运行 TestNG 时的编译行为),缺一不可。
✅ 步骤 3:声明 Maven 编译插件版本(pom.xml)
在 pom.xml 的
org.apache.maven.plugins maven-compiler-plugin 3.8.1 11 11 UTF-8
? 提示:若已存在该插件但 / 未设置,或值为 1.8,请务必修正;Maven 默认可能沿用旧版配置,不会自动继承 IDE 的 JDK 设置。
? 同步刷新与验证
完成上述配置后:
CPWEB企业网站管理系统(以下称CPWEB)是一个基于PHP+Mysql架构的企业网站管理系统。CPWEB 采用模块化方式开发,功能强大灵活易于扩展,并且完全开放源代码,面向大中型站点提供重量级企业网站建设解决方案。CPWEB企业网站管理系统 2.2 Beta 测试版本,仅供测试,不建议使用在正式项目中,否则发生任何的后果自负。
立即学习“Java免费学习笔记(深入)”;
- 点击 File → Reload project(或 Maven 工具窗口中的刷新按钮);
- 删除 target/ 目录,重新 mvn clean compile;
- 在 IDEA 中右键运行 testng.xml 前,确认右下角状态栏显示 JDK 11,且无红色波浪线提示 Duration 类无法解析。
? 补充说明
- java.time 不是第三方库,无需额外依赖,仅需正确编译环境;
- 若使用 Spring Boot 项目,还需检查 spring-boot-maven-plugin 是否覆盖了编译配置(通常不会,但建议核对 maven-compiler-plugin 是否被父 POM 覆盖);
- Community 版 IntelliJ 对 Java 11 支持完善,无需降级或切换版本——问题几乎 100% 出在配置未对齐。
通过以上三重保障,import java.time.Duration 将正常解析,Selenium 的 implicitlyWait(Duration) 调用可顺利编译执行。










