
intellij idea 中出现 “package java.time does not exist” 错误,根本原因是项目编译级别、jdk 配置或 maven 编译插件未统一设为 java 11,导致 java.time.duration 等 java 8+ 新增 api 无法识别。
该错误常见于 Selenium + TestNG 的 Maven 项目中,尤其当代码中使用了 Duration.ofSeconds(10) 并显式导入 import java.time.Duration 时——这要求运行环境和编译环境均支持 Java 8 及以上版本(java.time 自 Java 8 引入,但 JDK 11 是更稳妥的基准)。尽管你已安装 JDK 11 并在模块中设置了 Language Level 为 11,仍报错,说明多层级编译配置未完全对齐。
✅ 正确解决需同步校准以下三个关键位置:
1. 模块语言级别(Project Structure)
- 路径:File → Project Structure → Modules → Sources
- 确保 Language level 明确选择 11 (Preview) - Local variable syntax for lambda parameters 或至少 11
- ⚠️ 注意:仅设置为 “Project default” 不可靠,务必手动指定为 11
2. 编译器字节码目标版本(IDEA 编译器设置)
- 路径:File → Settings → Build, Execution, Deployment → Compiler → Java Compiler
- 设置 Target bytecode version 为 11
- 同时确认 Project bytecode version(位于同一页面顶部)也为 11
→ 此项控制 IDEA 内置编译器生成的 .class 文件兼容性,若仍为 8 或未设置,java.time 类型将被忽略。
3. Maven 编译插件配置(pom.xml)
即使 IDE 配置正确,Maven 构建(如执行 testng.xml 时由 Maven 触发)仍会按 pom.xml 中定义的规则编译。必须显式声明源码与目标版本:
org.apache.maven.plugins maven-compiler-plugin 3.8.1 11 11
? 验证是否生效?
执行以下任一操作后重新编译:
- 在 IDEA 中点击 File → Reload project(针对 Maven 项目)
- 终端运行 mvn clean compile,观察是否仍有编译错误
- 在测试类中尝试 new Duration() —— 若无红线且可跳转到 java.time.Duration,即配置成功。
? 额外建议:
一个经过完善设计的经典网上购物系统,适用于各种服务器环境的高效网上购物系统解决方案,shopxp购物系统Html版是我们首次推出的免费购物系统源码,完整可用。我们的系统是免费的不需要购买,该系统经过全面测试完整可用,如果碰到问题,先检查一下本地的配置或到官方网站提交问题求助。 网站管理地址:http://你的网址/admin/login.asp 用户名:admin 密 码:admin 提示:如果您
立即学习“Java免费学习笔记(深入)”;
- 检查 Project SDK 是否真正指向 JDK 11:File → Project Structure → Project → Project SDK
- 避免混用 JRE 与 JDK:java.time 属于 JDK 标准库,运行时必须使用完整 JDK(而非仅 JRE)
- 若使用 IntelliJ 的内置构建(非 Maven),还需检查 Build → Build Tools → Maven → Importing 中的 JDK for importer 是否设为 JDK 11
完成上述三步后,driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)) 将正常编译与运行,java.time 包不再报错。核心原则是:JDK 版本、源码级别、字节码目标、构建工具配置,四者必须严格一致为 Java 11。










