斯卡拉repl抛出错误
当我在terminal上键入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)
当我println("hello, world")
并inputprintln("hello, world")
,它再次抛出这个
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)
我正在使用Ubuntu 14.04
和java -version
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)
要么更新到一个新的Scala版本(2.10.3 +)或降级Java到Java 6/7。 正如你在输出中看到的那样,2.9.2在java 8引入之前已经很久了( Copyright 2002-2011, LAMP/EPFL
),所以它们不能很好的协同工作。
这个重复的问题包含有关Ubuntu的java降级的确切说明。
使用terminal删除Scala 2.9.2
sudo apt-get remove scala
从scala网站下载最新的scala
安装说明正在给这个链接
您可能必须使用JDK 7或6运行它
将JDK版本降级到7解决了这个问题。 这里是解决scheme: https : //askubuntu.com/questions/761127/how-do-i-install-openjdk-7-on-ubuntu-16-04-or-higher