我刚刚在 Ubuntu 上安装了 scala
scala -version
Scala code runner version 2.11.6 -- Copyright 2002-2013, LAMP/EPFL
但是当我尝试为交互式 shell 会话运行scala命令时,出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: javax/script/Compilable
at scala.tools.nsc.interpreter.ILoop.createInterpreter(ILoop.scala:126)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:908)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:906)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:906)
at scala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)
at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:906)
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:74)
at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
您安装的 Scala 版本不适用于您安装的 Java 版本。
Scala 在 Java 8 上运行良好。您可能已经安装了 Java 9。解决方案是卸载 Java 并安装 Java 8。
尝试将 Java 9 或更新版本与 Scala 一起使用会遇到更多问题。Oracle 已开始更改 Java 的打包和许可,这意味着 Scala 需要的某些类(导入)在 Java SE 9+ 中不存在。有些已移至 Java EE,有些已弃用。使用 Scala 继续使用 Java 8。