You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用IntelliJ CE运行Scala时出现AccessFlag加载错误求助

问题解决:Scala编译时AccessFlag/ElementType类文件损坏错误

核心原因

你遇到的错误本质是Scala版本与Java 21不兼容,叠加可能的项目配置或JDK完整性问题:

  • 从sbt输出的target/scala-3.1.3路径能看出,实际使用的是Scala 3.1.x版本,但Scala 3.1.x仅支持到Java 17,不兼容Java 21,导致编译时无法正确解析Java 21的核心类文件。
  • 也存在JDK安装文件损坏,导致核心类文件解析失败的可能。

解决步骤

1. 修正Scala版本配置

打开项目根目录的build.sbt文件,确保scalaVersion设置为支持Java 21的版本(Scala 3.3.0及以上),比如你提到的3.3.1.3:

scalaVersion := "3.3.1.3"

2. 清理旧编译产物并重新编译

在终端执行以下命令,清除旧的编译缓存:

sbt clean compile

3. 检查IntelliJ的项目配置

  • 打开File -> Project Structure,确认Project SDK选择的是Java 21。
  • 确认Scala SDK版本与build.sbt中配置的一致(3.3.1.3),如果不一致,点击Add选择对应的Scala SDK。

4. 修复可能损坏的JDK

如果上述步骤无效,大概率是JDK文件损坏:

  • 卸载当前Java 21,从官方渠道重新下载安装(比如Adoptium Temurin或Oracle OpenJDK)。
  • 安装完成后,在IntelliJ和系统环境变量中指定新的JDK路径。

5. 清理IntelliJ缓存

如果是IDE缓存导致的解析问题:

  • 点击File -> Invalidate Caches...。
  • 勾选Clear file system cache and local history,点击Invalidate and Restart重启IDE。

验证

完成上述步骤后,重新执行sbt run或在IntelliJ中运行主函数,应该可以正常编译运行。

内容的提问来源于stack exchange,提问作者user4202824

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:33:20