Заходите в интерпретатор Scala во время выполнения программы Scala - PullRequest
4 голосов
/ 30 июля 2010

Я пытаюсь попасть в интерпретатор Scala в середине моей программы Scala. Я видел этот очень интересный вопрос , но, похоже, он не работает в Eclipse (плагин 3.5.2 + Scala).

Я получаю следующую ошибку:

<code>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)
  }
}

1 Ответ

1 голос
/ 31 июля 2010

Вы не упоминаете версии инструментов командной строки Scala или Scala IDE для Eclipse, которые вы используете, но я высовываюсь и предполагаю, что инструменты командной строки - 2.8.0, тогда какEclipse имеет набор инструментов 2.7.x, или у вас есть 2.j. Scala-библиотека .jar где-то на вашем пути к классам проектов Eclipse (может быть получена через зависимость от Maven).Инструменты Eclipse для 2.8.0.final должны решить эту проблему для вас.Если это не так, вы, вероятно, нашли ошибку в SDT, и вы должны сообщить об этом здесь .

...