Scala SBT: scala.tools.nsc не запускается

У меня проблема с scala.tools.sbt

scala файлом

Здесь я использовал функциональность парсера для создания абстрактного синтаксического дерева кода 2 + 3

import scala.tools.nsc._
object Main extends App {
    var i = new Interpreter
    println(i.parse("2 + 3"))
}

SBT конфигурация

name := "scalaSample"

version := "1.0-SNAPSHOT"

scalaVersion := "2.9.1"

libraryDependencies += "org.scalatest" %% "scalatest" % "1.7.1" % "test"

libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.9.1"

Ошибка

Failed to initialize compiler: object scala not found. ** Обратите внимание, что начиная с версии 2.8 scala не предполагает использование java classpath. ** Для старого поведения передайте -usejavacp в scala, или, если используете объект Settings. ** объекта Settings программно, settings.usejavacp.value = true.

[ошибка] (run-main) java.lang.NullPointerException java.lang.NullPointerException at scala.tools.nsc.CompilationUnits$CompilationUnit. (CompilationUnits.scala:16) at scala.tools.nsc.interpreter.ExprTyper$codeParser$.applyRule(ExprTyper.scala:22) at scala.tools.nsc.interpreter.ExprTyper$codeParser$.stmts(ExprTyper.scala:36) at scala.tools.nsc.interpreter.ExprTyper$$anonfun$parse$2.apply(ExprTyper.scala:47) at scala.tools.nsc.interpreter.ExprTyper$$anonfun$parse$2.apply(ExprTyper.scala:46) at scala.tools.nsc.reporters.Reporter.withIncompleteHandler(Reporter.scala:46) at scala.tools.nsc.interpreter.ExprTyper$class.parse(ExprTyper.scala:46) at scala.tools.nsc.interpreter.IMain$exprTyper$.parse(IMain.scala:1012) at scala.tools.nsc.interpreter.IMain.parse(IMain.scala:1013) at eu.semantiq.scalaToJS.Main$delayedInit$body.apply(Main.scala:7) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:60) at scala.App$$anonfun$main$1.apply(App.scala:60) at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) at scala.collection.immutable.List.foreach(List.scala:45) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30) at scala.App$class.main(App.scala:60) at eu.semantiq.scalaToJS.Main$.main(Main.scala:5) at eu.semantiq.scalaToJS.Main.main(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) java.lang.RuntimeException: Ненулевой код выхода: 1 at scala.sys.package$.error(package.scala:27)

В scala REPL все работает

Добро пожаловать в Scala версии 2.9.0.1 (OpenJDK 64-Bit Server VM, Java 1.6.0_23). Введите выражения, чтобы они были оценены. Введите :help для получения дополнительной информации.

scala> import scala.tools.nsc._

import scala.tools.nsc._

scala> var i = new Interpreter

warning: there were 4 deprecation предупреждения; повторный запуск с параметром -deprecation для получения подробной информации warning: there were 1 deprecation warnings; re-run with -deprecation for details

i: scala.tools.nsc.Interpreter = scala.tools.nsc.Interpreter@786bfd73

scala> println(i.parse("2 + 3"))

Some(List(2.$plus(3)))

I feel really sorry for my bad English

6
задан Mateusz 17 February 2012 в 14:30
поделиться