我正试图在我的Scala程序中插入Scala解释器。 我见过this very interesting question但它似乎不适用于Eclipse(3.5.2 + Scala插件)。
我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: scala/io/LowPriorityCodecImplicits
at scala.tools.nsc.Interpreter$.breakIf(Interpreter.scala:1265)
at userInterface.CommandInterpreter$$anonfun$main$1.apply$mcVI$sp(CommandInterpreter.scala:102)
at scala.collection.immutable.Range$ByOne$class.foreach$mVc$sp(Range.scala:275)
at scala.collection.immutable.Range$$anon$1.foreach$mVc$sp(Range.scala:267)
at userInterface.CommandInterpreter$.main(CommandInterpreter.scala:101)
at userInterface.CommandInterpreter.main(CommandInterpreter.scala)
Caused by: java.lang.ClassNotFoundException: scala.io.LowPriorityCodecImplicits
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 6 more
如果我使用scalac编译并在终端上运行它,那么相同的代码就可以工作。 可能有什么不对? Eclipse的东西?
谢谢!
PS:这是我正在努力工作的简化版本
import scala.tools.nsc.Interpreter._ object ScalaShell { def main(args: Array[String]) { break(Nil) } }
答案 0 :(得分:1)
您没有提到您正在使用的Scala命令行工具或Scala IDE for Eclipse的版本,但我会坚持认为命令行工具是2.8.0而不是Eclipse工具是2.7.x或者你的Eclipse项目类路径上有一个2.7.x scala-library .jar(可能是通过Maven依赖项引入的)。
如果是这种情况,则原始安装2.8.0.final的Eclipse工具应该为您解决问题。如果没有,那么你可能在SDT中发现了一个错误,你应该报告它here。