我最近将 scala 从 v2.11.8 更新到 2.12.1 并得到了 CNF 异常:

java.lang.ClassNotFoundException: scala.Product$class

我看到这个类是由 scala-library.jar 提供的。
运行scalatest时会发生错误(该项目仍处于非常早期的阶段,因此我只有测试)。

你有什么主意吗?我在发行说明上什么也没找到。

最佳答案

特别是,在以 $class 后缀命名的类中不再提供 trait 实现。您可以在发行说明中找到有关“特征编码”的通知。

如果尝试使用内置插件之外的任何依赖项,您可能想使用 sbt 或 ammonite。总有一天他们会有一个整洁的“平台”来帮助你。

$ cat notraitclass.scala

package notraitclass

trait T {
  def t: Int = 42
}
$ scalac211 notraitclass.scala
$ ls notraitclass
T.class  T$class.class
$ rm -rf notraitclass
$ scalac notraitclass.scala
$ ls notraitclass
T.class

关于Scala 2.12.1 ClassNotFoundException Product$class,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41118777/

10-16 18:17