Java Scala repl抛出错误

Java Scala repl抛出错误,java,scala,read-eval-print-loop,Java,Scala,Read Eval Print Loop,当我在终端上键入scala以启动repl时,它会抛出此错误 scala> [init] error: error while loading AnnotatedElement, class file '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar (java/lang/reflect/AnnotatedElement.class)' is broken (bad constant pool tag 15 at byte 2713) 当我按ente

当我在终端上键入
scala
以启动repl时,它会抛出此错误

scala> [init] error: error while loading AnnotatedElement, 
class file '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar
(java/lang/reflect/AnnotatedElement.class)' 
is broken (bad constant pool tag 15 at byte 2713)
当我按enter键并键入
println(“你好,世界”)
时,它再次抛出

error: error while loading CharSequence, 
class file '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar
(java/lang/CharSequence.class)' is broken
(bad constant pool tag 15 at byte 1501)
我使用的是
ubuntu14.04
java-version
gives

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

您可能必须使用JDK 7或6运行它,或者更新到较新的scala版本(2.10.3+)或者将java降级到java 6/7。正如您在输出中看到的,2.9.2早在Java8推出之前就已经存在了(
Copyright 2002-2011,LAMP/EPFL
),因此它们不能很好地协同工作


包含ubuntu java降级的确切说明。

使用终端删除scala 2.9.2

 sudo apt-get remove scala 
从下载最新的scala


安装说明正在对此进行说明

将JDK版本降级为7为我解决了这个问题。 以下是解决方案:

您有什么版本的Scala?Scala-版本提供了
Scala code runner版本2.9.2——版权所有2002-2011,LAMP/EPFL
除了更新Scala版本之外,还提供了,我还必须在项目的属性中更新SBT版本来解决这个问题。从逻辑上来说,要想让祖先复制它的继承者(这个)是不可能的。这就是为什么你的标志是重复的(请参阅“问题之前被问过,并且(但不是或)已经有了答案”)这一个有点不准确。但你是对的,当前的帖子有明确的答案,而之前的帖子有隐含的答案,法律上没有答案。@ghoshak我通常更喜欢老问题,但,是的,关闭了那个问题,因为它没有被接受的答案,现有的问题只提出了一种解决问题的方法。从这个角度来看,这篇文章有更好的机会。是的,你的立场也很正确,但六个月前你去了哪里。我不明白为什么2.10.3比2.9.2更新?@code4j它就像10楼的3号公寓比9楼的2号公寓高。我安装了scala 2.11.6。不要忘记为scala设置全局访问的环境变量。欢迎提供指向解决方案的链接,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及为什么存在,然后引用您链接到的页面的最相关部分,以防目标页面不可用。通过设置环境变量,例如:
export JAVA\u HOME=/Library/JAVA/JavaVirtualMachines/jdk1.7.0\u 79.jdk/Contents/HOME/