【问题标题】:Scala repl throws errorScala repl 抛出错误
【发布时间】:2014-08-22 10:56:29
【问题描述】:

当我在终端输入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("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.04java -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)

【问题讨论】:

标签: java scala read-eval-print-loop


【解决方案1】:

要么更新到更新的 scala 版本(2.10.3+),要么将 java 降级到 java 6/7。正如您在输出中看到的,2.9.2 早在引入 java 8 之前就已经存在 (Copyright 2002-2011, LAMP/EPFL),因此它们不能很好地协同工作。

This duplicate question 包含有关 ubuntu 的 java 降级的确切说明。

【讨论】:

  • 在逻辑上感觉祖先不可能复制它的继任者(这个)。这就是为什么你的标志 far earlier question 是重复的(请参阅“之前提出的问题并且(但不是 OR)已经有答案”)这个标志有点不准确。但是你说得对,当前的帖子有明确的答案,而之前的帖子有隐含的答案,而 de jure 没有答案。
  • @ghoshak 我通常更喜欢较旧的问题,但是,是的,关闭了那个问题,因为它没有可接受的答案,并且现有问题只提出了一种解决问题的方法。从这个角度来看,这篇文章有更好的机会。
  • 是的,你这边也不错,但是六个月前你去哪儿了。
  • 我不明白为什么 2.10.3 是比 2.9.2 更新的版本?
  • @code4j 这就像 10 楼的 3 号公寓高于 9 楼的 2 号公寓。
【解决方案2】:

使用终端删除 scala 2.9.2

 sudo apt-get remove scala 

scala website下载最新的scala

安装说明在这个link上给出

【讨论】:

  • 我安装了 scala 2.11.6 。不要忘记为 scala 设置环境变量以进行全局访问。
【解决方案3】:

您可能必须使用 JDK 7 或 6 运行它

【讨论】:

  • 通过设置环境变量例如:export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/
【解决方案4】:

将 JDK 版本降级到 7 为我解决了这个问题。 这是解决方案: https://askubuntu.com/questions/761127/how-do-i-install-openjdk-7-on-ubuntu-16-04-or-higher

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-11-17
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多