2014-06-13 12 views
38

Tôi đang sử dụng như sau:Biên soạn không thành công: lỗi khi tải AnnotatedElement, ConcurrentMap, CharSequence từ Java 8 trong Scala 2.10?

  • 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

Tôi thường gặp phải lỗi này:

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 

Hiện tại tôi đang cố gắng thực hiện điều này khi chỉ cần gọi .count() trên bộ sưu tập MongoDB của mình.

Khi Googling, có vẻ như nó có thể do các vấn đề phụ thuộc gây ra. Vấn đề là, tôi đang sử dụng Scalatra chỉ để phục vụ một API và thực sự không yêu cầu bất kỳ công cụ mở rộng nào. Tôi nhận xét tất cả các tham chiếu đến nó, nhưng tôi vẫn nhận được điều này. Nó có thể là một vấn đề phụ thuộc giữa các thư viện tôi đang sử dụng không?

+2

Thay đổi thành java 7 và thử lại. Đây là vấn đề với java 8 và mã sử dụng scala 2.9 –

+0

Tất cả các lớp bị hỏng là một phần của JDK, điều này dường như chỉ ra rằng @ajozwik là đúng. – vptheron

+4

Đã sửa chữa chưa? Tôi có một vấn đề tương tự nhưng tôi đang làm việc trên scala 2.11.4 và Java 8: ( – MC2DX

Trả lời

49

Trong công ty của tôi, chúng tôi đã gặp sự cố này với CharSequence. Điều này là do Scala 2.10.x không hoạt động với Java 8. Điều này được mô tả trong Scalas mailinglist. Chuyển về Java 7.

+0

làm việc cho tôi Thx. – gdbj

3

Tôi thấy cùng vấn đề với phần mềm yêu cầu Scala 2.9.2+ và Java 1.7 chạy trên Scala 2.10.4 và Java 1.8. Đã thay đổi thành Java 7 qua sudo update-alternative --config java

11

Chuyển sang Scala 2.10.4 giải quyết được vấn đề cho tôi.

-1

Tôi hy vọng phiên bản ổn định của Scala sẽ giúp bạn, Hãy thử 2.10.x với các phiên bản Java 1.7.x để có hiệu suất tốt hơn.

Tôi có nghĩa là nó cũng hiệu quả với tôi.

4

Tôi gặp sự cố tương tự trên Java 1.8.0 khi làm việc với Scala 2.10.4 và sbt 0.12.4. Nhưng khi nâng cấp lên sbt 0.13.7, vấn đề được giải quyết.

+1

điều này đã không làm việc cho tôi. Đã phải hạ cấp java của tôi – gdbj

+0

làm việc cho tôi. – gun

-1

Tôi đã gặp vấn đề tương tự. Tuy nhiên bằng cách chuyển sang Java 7, vấn đề của tôi đã được giải quyết. Bây giờ cấu hình này làm việc cho tôi:

sbt 0.13.8 
scala 2.11.7 
java 7 
0

tôi giải quyết điều này bằng cách sử dụng:

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

môi trường của tôi là:

  • JDK 8
  • Maven
  • Scala
0

Tôi cũng gặp vấn đề tương tự trong Ubuntu 14.04 nhưng tôi đã giải quyết bằng cách xóa scala 2.10 và cài đặt 2.11

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

 

dpkg -i scala-2.11.7.deb 

Bây giờ thử.

0

Đó là rất nhiều cấu hình lại cho tôi để có được nó để làm việc, ở đây là của tôi (NOW) làm việc build.sbt sử dụng, SBT 0.13.15 và scala 2.10.4 và 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 
Các vấn đề liên quan