web-dev-qa-db-fra.com

Échec de la compilation: erreur lors du chargement de AnnotatedElement, ConcurrentMap, CharSequence depuis Java 8 sous Scala 2.10?

J'utilise les éléments suivants:

  • Scala 2.10.4
  • Scalatra 2.2.2
  • sbt 0,13.0
  • Java 1.8.0
  • casbah 2.7.2
  • scalatra-sbt 0.3.5

Je rencontre fréquemment cette erreur:

21:32:00.836 [qtp1687101938-55] ERROR o.fusesource.scalate.TemplateEngine - Compilation failed:
error: error while loading CharSequence, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(Java/lang/CharSequence.class)' is broken
(class Java.lang.RuntimeException/bad constant pool tag 18 at byte 10)
error: error while loading ConcurrentMap, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(Java/util/concurrent/ConcurrentMap.class)' is broken
(class Java.lang.RuntimeException/bad constant pool tag 18 at byte 61)
two errors found
21:38:03.616 [qtp1687101938-56] ERROR o.fusesource.scalate.TemplateEngine - Compilation failed:
error: error while loading AnnotatedElement, class file '/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/jre/lib/rt.jar(Java/lang/reflect/AnnotatedElement.class)' is broken
(class Java.lang.RuntimeException/bad constant pool tag 18 at byte 76)
one error found

Actuellement, je rencontre ce problème lorsque j'essaie simplement d'appeler une .count() sur ma collection MongoDB.

Lors de la recherche sur Google, il semble que cela puisse être causé par des problèmes de dépendance. Le problème, c’est que j’utilise Scalatra uniquement pour servir une API et que je n’ai en fait besoin de rien de tout cela. J'ai commenté toutes les références, mais je comprends toujours cela. Serait-ce un problème de dépendance entre les bibliothèques que j'utilise?

40
jnfr

Dans mon entreprise, nous avons eu ce problème avec CharSequence. Cela est dû à Scala 2.10.x qui ne fonctionne pas avec Java 8. Ceci a été décrit dans Scalas mailinglist . Revenez à Java 7.

50
bkowalikpl

Passer à Scala 2.10.4 a résolu le problème pour moi.

11
José Ricardo

J'ai un problème similaire sur Java 1.8.0 avec Scala 2.10.4 et sbt 0.12.4. Mais lors de la mise à niveau vers sbt 0.13.7, le problème est résolu.

4
viirya

Je constate le même problème avec les logiciels nécessitant Scala 2.9.2+ et Java 1.7 fonctionnant sous Scala 2.10.4 et Java 1.8. Passé à Java 7 via Sudo update-alternatives --config Java

3
Edi Bice

J'ai également eu le même problème dans Ubuntu 14.04 mais j'ai résolu le problème en supprimant la version 2.10 et en installant la version 2.11.

wget www.scala-lang.org/files/archive/scala-2.11.7.deb

dpkg -i scala-2.11.7.deb

Maintenant essaye. 

0
Nagaraj Vittal

J'ai résolu ceci en utilisant:

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.10.2-RC2</version>
</dependency>

Mon environnement est:

  • JDK 8
  • Maven
  • Scala
0
Panda1667075

C’était beaucoup de reconfiguration pour que je puisse le faire fonctionner.

name := "ScalaTelemetryManagerApi"
version := "1.0"
scalaVersion := "2.10.4"
scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8")

libraryDependencies ++= {
  Seq(
    "io.spray"            %   "spray-can"     % "1.3.1",
    "io.spray"            %   "spray-routing" % "1.3.1",
    "io.spray"            %   "spray-testkit" % "1.3.1",
    "com.typesafe.akka"   %%  "akka-actor"    % "2.3.2",
    "com.typesafe.akka"   %%  "akka-testkit"  % "2.3.2",
    "org.specs2"          %%  "specs2-core"   % "3.6",
    "com.github.seratch"  %%  "awscala"       % "0.5.+",
    "org.scalaz"      %%  "scalaz-core"   % "7.2.14"
  )
}

resolvers += "Scalaz Bintray Repo" at "https://dl.bintray.com/scalaz/releases"

Revolver.settings

retrieveManaged := true
0
Sean Bradley