scala 2.12.1 ClassNotFoundException Product $ class

时间:2016-12-13 10:27:07

标签: scala

我最近将scala从v2.11.8更新为2.12.1并获得了CNF例外:

java.lang.ClassNotFoundException: scala.Product$class

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

你知道吗?我在发行说明中找不到任何内容。

2 个答案:

答案 0 :(得分:9)

库在2.11和2.12之间不是二进制兼容的,很可能你的一个库必须用scala 2.12重新编译

答案 1 :(得分:1)

特别是,在使用$class后缀命名的类中不再提供特征实现。您将找到有关" trait encoding"的通知。在发行说明中。

如果尝试除内置插件之外的任何依赖项,可能你想使用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