首页 > 解决方案 > Scala SBT - 运行简单命令时出现 Java ClassNotFoundException

问题描述

  1. 我正在使用带有 SBT 1.5.4 的 OpenJDK 11

  2. 我还将我的系统环境变量路径设置为C:\sbt\bin- 即我在 Windows 上

  3. 我也定义了 JAVA_HOME。

当我从命令行运行sbt命令时,我收到以下错误:

copying runtime jar...
[info] [launcher] getting org.scala-sbt sbt 1.4.1  (this may take some time)...
[info] [launcher] getting Scala 2.13.3 (for sbt)...
java.lang.NoClassDefFoundError: scala/Serializable
        at sbt.internal.ClassLoaderWarmup$.warmup(XMainConfiguration.scala:31)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at sbt.internal.XMainConfiguration.run(XMainConfiguration.scala:82)
        at sbt.xMain.run(Main.scala:46)
        at xsbt.boot.Launch$.$anonfun$run$1(Launch.scala:149)
        at xsbt.boot.Launch$.withContextLoader(Launch.scala:176)
        at xsbt.boot.Launch$.run(Launch.scala:149)
        at xsbt.boot.Launch$.$anonfun$apply$1(Launch.scala:44)
        at xsbt.boot.Launch$.launch(Launch.scala:159)
        at xsbt.boot.Launch$.apply(Launch.scala:44)
        at xsbt.boot.Launch$.apply(Launch.scala:21)
        at xsbt.boot.Boot$.runImpl(Boot.scala:78)
        at xsbt.boot.Boot$.run(Boot.scala:73)
        at xsbt.boot.Boot$.main(Boot.scala:21)
        at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.lang.ClassNotFoundException: scala.Serializable
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        ... 18 more
[error] [launcher] error during sbt launcher: java.lang.NoClassDefFoundError: scala/Serializable

我不知道我做错了什么,因为根据文档,这应该可以工作。我也尝试删除HOME/.sbt目录以重复该过程,但没有运气。任何人的任何想法?

标签: windowsscalasbtjava-11

解决方案


它说[info] [launcher] getting Scala 2.13.3 (for sbt)...。但是 sbt 应该总是使用 Scala 2.12。你在目录scalaVersion := "2.13.3"中的某个地方有一行吗?project


推荐阅读