跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Java 项目中 java.time 包不存在的完整解决方案

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 的 中添加或更新 maven-compiler-plugin,强制 Maven 使用 Java 11 编译:
org.apache.maven.plugins maven-compiler-plugin 3.8.1 11 11 UTF-8
? 提示:若已存在该插件但 / 未设置,或值为 1.8,请务必修正;Maven 默认可能沿用旧版配置,不会自动继承 IDE 的 JDK 设置。 ? 同步刷新与验证 完成上述配置后: Eclipse导入Android或其他的JAVA项目的正确方法 WORD版 本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看 下载 立即学习 “ 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) 调用可顺利编译执行。

相关文章