【问题标题】:Compilation failed: error while loading AnnotatedElement, ConcurrentMap, CharSequence from Java 8 under Scala 2.10?编译失败:在 Scala 2.10 下从 Java 8 加载 AnnotatedElement、ConcurrentMap、CharSequence 时出错?
【发布时间】:2014-08-03 13:42:51
【问题描述】:

我正在使用以下内容:

  • 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

我经常遇到这个错误:

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

目前我只是尝试在我的 MongoDB 集合上调用 .count() 时遇到了这个问题。

在谷歌上搜索,似乎它可能是由依赖问题引起的。问题是,我使用 Scalatra 只是为了提供 API,实际上不需要任何 scalate 东西。我注释掉了所有对它的引用,但我仍然明白这一点。会不会是我正在使用的库之间的依赖问题?

【问题讨论】:

  • 换成 java 7 再试一次。这是 java 8 和使用 scala 2.9 的代码的问题
  • 所有损坏的类都是JDK的一部分,这似乎表明@ajozwik是对的。
  • 修复了吗?我有类似的问题,但我正在使用 scala 2.11.4 和 Java 8 :(

标签: scala sbt


【解决方案1】:

在我的公司中,我们遇到了 CharSequence 的问题。这是因为 Scala 2.10.x 不适用于 Java 8。Scalas mailinglist 对此进行了描述。切换回 Java 7。

【讨论】:

    【解决方案2】:

    切换到 Scala 2.10.4 为我解决了这个问题。

    【讨论】:

    • 如何解决问题。这是 OP 声称使用的特定版本
    【解决方案3】:

    我在使用 Scala 2.10.4 和 sbt 0.12.4 的 Java 1.8.0 上遇到了类似的问题。但是升级到sbt 0.13.7后问题就解决了。

    【讨论】:

      【解决方案4】:

      我发现在 Scala 2.10.4 和 Java 1.8 上运行需要 Scala 2.9.2+ 和 Java 1.7 的软件存在同样的问题。通过 sudo update-alternatives --config java

      更改为 Java 7

      【讨论】:

        【解决方案5】:

        我通过以下方式解决了这个问题:

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

        我的环境是:

        • JDK 8
        • 马文
        • 斯卡拉

        【讨论】:

          【解决方案6】:

          为了让它工作,我需要进行大量的重新配置, 这是我(现在)正在使用的 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
          

          【讨论】:

            【解决方案7】:

            我在 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
            

            现在试试。

            【讨论】:

              【解决方案8】:

              我希望 Scala 的稳定版本对您有所帮助,尝试 2.10.x 和 Java 1.7.x 版本以获得更好的性能。

              我的意思是它也对我有用。

              【讨论】:

                【解决方案9】:

                我遇到了同样的问题。但是,通过切换到 Java 7,我的问题得到了解决。 所以现在这个配置对我有用:

                sbt 0.13.8
                scala 2.11.7
                java 7
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-03-09
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多