eclipse java 项目,第一个java文件总是提示:The type java.lang.invoke.StringConcatFactory cannot be resolved. It is indirectly referenced from required .class files,删掉第一个java文件后第二个java文件也提示同样的错误

eclipse java 项目,第一个java文件总是提示:The type java.lang.invoke.StringConcatFactory cannot be resolved. It is indirectly referenced from required .class files,删掉第一个java文件后第二个java文件也提示同样的错误

jdk1.8对应的Compiler compliance level 是 1.8

本人是level 被默认为22导致的错误。

 

  1. 调整编译器合规级别

    • 右键项目 → Properties → Java Compiler

    • 确保 Use compliance from execution environment 勾选,并选择与 JDK 匹配的版本(如 Java 17)。

    • 或取消勾选,手动设置 Compiler compliance level 为与 JDK 一致的版本。

===========

以下为deepseek给出的解决方案,不得不说deepseek真是强大。

在 Eclipse 中遇到 The type java.lang.invoke.StringConcatFactory cannot be resolved 错误,通常是由于 Java 版本不兼容编译器设置问题导致。以下是逐步排查与解决方案:


1. 检查 JDK 版本兼容性

问题原因

  • java.lang.invoke.StringConcatFactory 是 Java 9+ 引入的类。

  • 若项目使用的 Java 版本 < 9(如 Java 8),但代码或依赖库间接引用了该特性,会触发此错误。

解决方法

  1. 确认项目使用的 JDK 版本

    • 右键项目 → Properties → Java Build Path → Libraries 选项卡。

    • 检查 JRE System Library 是否指向 Java 9 或更高版本(如 Java 11、17)。

      • 若版本过低,需更换为高版本 JDK(下载地址)。

  2. 调整编译器合规级别

    • 右键项目 → Properties → Java Compiler

    • 确保 Use compliance from execution environment 勾选,并选择与 JDK 匹配的版本(如 Java 17)。

    • 或取消勾选,手动设置 Compiler compliance level 为与 JDK 一致的版本。


2. 修复 JRE 系统库配置

步骤

  1. 移除旧的 JRE 系统库:

    • 右键项目 → Build Path → Configure Build Path → Libraries 选项卡。

    • 选中旧的 JRE System Library(如 Java 1.8)→ 点击 Remove

  2. 添加正确的 JRE 系统库:

    • 点击 Add Library → 选择 JRE System Library → Alternate JRE → 选择已安装的高版本 JDK(如 Java 17)。

    • 若列表中没有目标 JDK,需先在 Eclipse 中添加:

      • Window → Preferences → Java → Installed JREs → Add → 指定 JDK 安装路径。


3. 清理项目并更新依赖

清理项目

  • 右键项目 → Clean → 选择项目 → Clean

  • 或者通过菜单 Project → Clean

更新 Maven/Gradle 依赖(若适用)

  • Maven 项目:右键项目 → Maven → Update Project → 勾选 Force Update → OK

  • Gradle 项目:右键项目 → Gradle → Refresh Gradle Project


4. 检查 Eclipse 配置

  1. 确保 Eclipse 支持当前 Java 版本

    • Eclipse 版本需与 JDK 版本兼容(如 Eclipse 2023-03 支持 Java 20)。

    • 更新 Eclipse:Help → Check for Updates

  2. 重置 Eclipse 缓存

    • 关闭 Eclipse。

    • 删除工作区目录下的 .metadata/.plugins/org.eclipse.jdt.core 文件夹。

    • 重新启动 Eclipse。


5. 验证代码兼容性

  • 确保代码未直接或间接使用 Java 9+ 的 API(如 StringConcatFactory):

    • 若依赖库(如 Lombok、第三方 Jar 包)需要高版本 Java,需升级项目 JDK 或更换依赖版本。


6. 重新创建项目(终极方案)

若上述步骤无效,尝试新建项目并迁移代码:

  1. 创建新的 Java 项目,选择正确的 JDK 版本。

  2. 将旧项目的代码和配置文件(如 pom.xml)复制到新项目。

  3. 重新编译并运行。


常见错误场景

  • 场景 1:项目使用 Java 8,但依赖库需要 Java 11+。

    • 方案:升级项目 JDK 至 11+,或降低依赖库版本。

  • 场景 2:Eclipse 缓存损坏。

    • 方案:清理项目并重置缓存(见步骤 4)。


通过以上步骤,可系统性解决 StringConcatFactory 错误。若仍存在问题,可提供具体 JDK 版本、Eclipse 版本和项目配置,进一步排查!

posted @   大自然的流风  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示