Подтвердить что ты не робот

Ошибка компиляции: ошибка при загрузке AnnotatedElement, ConcurrentMap, CharSequence из Java 8 под Scala 2.10?

Я использую следующее:

  • Scala 2.10.4
  • Scalaтра 2.2.2
  • sbt 0.13.0
  • java 1.8.0
  • casbah 2.7.2
  • scalatra-sbt 0.3.5

Я часто сталкиваюсь с этой ошибкой:

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

В настоящее время я сталкиваюсь с этим, когда просто пытаюсь вызвать .count() в моей коллекции MongoDB.

В Google, похоже, это может быть вызвано проблемами зависимости. Дело в том, что я использую Scalatra только для того, чтобы обслуживать API и на самом деле не нуждаюсь в каких-либо массивах. Я прокомментировал все ссылки на него, но я все еще получаю это. Может ли быть проблемой зависимости между библиотеками, которые я использую?

4b9b3361

Ответ 1

В моей компании мы столкнулись с этой проблемой с CharSequence. Это связано с тем, что Scala 2.10.x не работает с Java 8. Это описано в Scalas mailinglist. Вернитесь к Java 7.

Ответ 2

Переключение на Scala 2.10.4 решило проблему для меня.

Ответ 3

У меня аналогичная проблема на Java 1.8.0, работающая с Scala 2.10.4 и sbt 0.12.4. Но при обновлении до sbt 0.13.7 проблема решена.

Ответ 4

Я вижу ту же проблему с программным обеспечением, требующим Scala 2.9.2+ и Java 1.7, работающих на Scala 2.10.4 и Java 1.8. Изменено на Java 7 через sudo update-alternatives --config java

Ответ 5

Я решил это, используя:

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

Моя среда:

  • JDK 8
  • Maven
  • Scala

Ответ 6

Я также получил ту же проблему в Ubuntu 14.04, но решил, удалив scala 2.10 и установив 2.11

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

 

dpkg -i scala-2.11.7.deb

Теперь попробуйте.

Ответ 7

Для меня было много реконфигурации, чтобы заставить его работать, вот мой (СЕЙЧАС) рабочий build.sbt, используя, sbt 0.13.15 и scala 2.10.4 и jdk 1.8.1_131

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

Ответ 8

Я надеюсь, что стабильная версия Scala поможет вам, попробуйте 2.10.x с версиями Java 1.7.x для лучшей производительности.

Я имею в виду, что это сработало и для меня тоже.

Ответ 9

У меня была та же проблема. Однако, переключившись на Java 7, моя проблема решена. Итак, теперь эта конфигурация работает для меня:

sbt 0.13.8
scala 2.11.7
java 7