2016-12-13 20 views
7

Niedawno zaktualizowane Scala z v2.11.8 do 2.12.1 i dostał wyjątek CNF:

java.lang.ClassNotFoundException: scala.Product$class 

Widziałam klasa jest dostarczany przez scala-library.jar. Błąd występuje podczas uruchamiania skalowania (projekt jest wciąż na bardzo wczesnym etapie, więc mam tylko testy).

Masz jakiś pomysł? Nic nie znalazłem w notatkach do wydania.

+0

Czy używasz 'sbt'? Jeśli tak, to w jakiej wersji? – meucaa

+0

Nie, nie używam sbt. Zgadzam się z Alexejem, że mam niedopasowanie wersji. Niektóre z słoików, których używam, są w wersji 2.11. scalatest jest na przykład dla wersji 2.11, ale wersja 2.12 nie jest jeszcze dostępna i powinienem skompilować ją ze źródeł lub w inny sposób zaczekać na przejście do wersji 2.12, dopóki nie będzie lepiej obsługiwana. –

+1

Powinieneś używać sbt. – Reactormonk

Odpowiedz

1

W szczególności implementacje trait nie są już przewidziane w zajęciach nazwanych z $class przyrostka. W informacji o wydaniu znajdziesz informację o "kodowaniu cech".

Prawdopodobnie chcesz użyć sbt lub amonitu, jeśli eksperymentujesz z dowolnymi zależnościami oprócz wbudowanych. Pewnego dnia będą mieli uporządkowaną "platformę", która ci pomoże.

$ 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 
7

biblioteki nie są binarnie kompatybilny między 2.11 a 2.12, najprawdopodobniej jedna z bibliotek musi być ponownie skompilowana z Scala 2,12