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

Scala项目sbt及IntelliJ运行异常求助:含NoClassDefFoundError等问题

解决方案:Scala项目sbt与IntelliJ运行报错问题

一、解决sbt启动时java.lang.NoClassDefFoundError: Could not initialize class sbt.internal.parser.SbtParser错误

  • 确认sbt版本兼容性:Scala 2.13.10要求sbt版本≥1.5.0(JDK17需要sbt 1.5.0及以上支持)。检查项目根目录下project/build.properties文件中的sbt.version,如果是1.4.x及以下版本,修改为1.6.x或1.9.x(如sbt.version=1.9.6)。
  • 强制sbt使用JDK17:终端执行export JAVA_HOME=/path/to/your/jdk17(替换为实际JDK17路径),再启动sbt;若用IntelliJ,在Settings -> Build, Execution, Deployment -> Build Tools -> sbt中,将"JVM"选项指定为JDK17。
  • 重新安装兼容版本的sbt:通过coursier执行cs install sbt:1.9.6,覆盖旧的sbt launcher,避免版本不匹配问题。

二、解决IntelliJ中scalac: Unsupported class file major version 64错误

  • 统一项目JDK配置:打开File -> Project Structure,确保Project SDK为JDK17,所有模块的Module SDK也设置为JDK17。
  • 调整Scala编译配置:进入Settings -> Languages & Frameworks -> Scala,确认项目的Scala SDK为2.13.10,且Compiler target JVM version设置为17;同时在sbt设置页,勾选"Use sbt shell for build and import"并指定JDK17作为其JVM。
  • 清理IntelliJ本地缓存:执行File -> Invalidate Caches... -> Invalidate and Restart,清除旧的编译缓存。
  • 排查依赖兼容性:用命令find . -name "*.jar" -exec javap -v {} | grep "major version" | grep 64 \;扫描项目依赖,找到用JDK20编译的jar包(major version 64对应JDK20),替换为兼容JDK17的版本。

通用排查步骤

  • 验证版本一致性:终端执行java -version和sbt "show javaVersion",确认输出均为JDK17。
  • 重新导入项目:删除项目根目录下的.idea文件夹,再通过IntelliJ重新导入项目,确保配置文件重新生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:22:20