【问题标题】:Scala REPL startup error "class file is broken" [duplicate]Scala REPL 启动错误“类文件已损坏”[重复]
【发布时间】:2013-09-21 11:40:31
【问题描述】:

每次启动 Scala 2.9.2 REPL (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0-ea) 第一行代码执行后都会给我一个错误:

scala> 1 + 2
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 1484)

稍后在当前 REPL 实例的进一步评估过程中没有发生类似的错误。

有没有人建议如何处理这种行为?

【问题讨论】:

  • 我认为这是因为 Scala 2.9.2 和 Java 8 之间存在一些冲突,请尝试使用新的 Scala 或旧的 Java
  • 感谢您的建议。切换到 Scala 2.10.2 解决了这个问题。
  • 我使用的是 Scala 2.11.8 -- 版权所有 2002-2016,LAMP/EPFL 和 java 版本“1.8.0_111”---> 然后我也收到以下错误:[INFO] No known依赖项。编译所有内容 [错误] 错误:加载 CharSequence 时出错,类文件 '/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar(java/lang/CharSequence.class)' 已损坏 [信息] (class java.lang.RuntimeException/bad constant pool tag 18 at byte 10) [ERROR] 发现一个错误

标签: scala read-eval-print-loop


【解决方案1】:

尝试选择其他替代提供者 java:

$ sudo update-alternatives --config java

替代java有一些选择(提供/usr/bin/java)。

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-oracle/jre/bin/java          1071      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode
* 3            /usr/lib/jvm/java-8-oracle/jre/bin/java          1065      manual mode

Press enter to keep the current choice[*], or type selection number: 

编辑: Scala 现在可用于 Java 8 :-)

http://www.scala-lang.org/news/2013/09/18/release-notes-v2.10.3-RC2.html

【讨论】:

  • 这行得通。谢谢!
  • 太棒了,现在可以使用了。
猜你喜欢
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 2020-07-19
  • 1970-01-01
  • 2018-08-25
  • 2020-03-09
  • 2012-12-01
  • 1970-01-01
相关资源
最近更新 更多