scala 2.12.1 ClassNotFoundException Product $ class

Ale*_*oni 7 scala

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

java.lang.ClassNotFoundException: scala.Product$class
Run Code Online (Sandbox Code Playgroud)

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

你有什么主意吗?我在发行说明中找不到任何内容.

Ale*_*aak 10

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


som*_*ytt 1

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

如果尝试使用除内置项之外的任何依赖项,您可能想使用 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
Run Code Online (Sandbox Code Playgroud)