У меня проблема с 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"
Error
Не удалось инициализировать компилятор: объект scala не найден.
** Обратите внимание, что по состоянию на 2.8 scala не предполагает использование пути к классам Java.
** Для старого поведения передайте -usejavacp в scala, или если вы используете настройки
** объект программно, settings.usejavacp.value = true.
[ошибка] (run-main) java.lang.NullPointerException
java.lang.NullPointerException в
scala.tools.nsc.CompilationUnits $ CompilationUnit.
(CompilationUnits.scala: 16) в
scala.tools.nsc.interpreter.ExprTyper $ codeParser $ .applyRule (ExprTyper.scala: 22)
в
scala.tools.nsc.interpreter.ExprTyper $ codeParser $ .stmts (ExprTyper.scala: 36)
в
scala.tools.nsc.interpreter.ExprTyper $$ anonfun $ синтаксического анализа $ 2.Apply (ExprTyper.scala: 47)
в
scala.tools.nsc.interpreter.ExprTyper $$ anonfun $ синтаксического анализа $ 2.Apply (ExprTyper.scala: 46)
в
scala.tools.nsc.reporters.Reporter.withIncompleteHandler (Reporter.scala: 46)
в
scala.tools.nsc.interpreter.ExprTyper $ class.parse (ExprTyper.scala: 46)
в
scala.tools.nsc.interpreter.IMain $ exprTyper $ .parse (IMain.scala: 1012)
в scala.tools.nsc.interpreter.IMain.parse (IMain.scala: 1013) в
eu.semantiq.scalaToJS.Main $ delayedInit $ body.apply (Main.scala: 7) в
scala.Function0 $ class.apply $ mcV $ sp (Function0.scala: 34) в
scala.runtime.AbstractFunction0.apply $ мкВ $ зр (AbstractFunction0.scala: 12)
в scala.App $$ anonfun $ main $ 1.применить (App.scala: 60) в
scala.App $$ anonfun $ main $ 1.применить (App.scala: 60) в
scala.collection.LinearSeqOptimized $ class.foreach (LinearSeqOptimized.scala: 59)
в scala.collection.immutable.List.foreach (List.scala: 45) в
scala.collection.generic.TraversableForwarder $ class.foreach (TraversableForwarder.scala: 30)
в scala.App $ class.main (App.scala: 60) в
eu.semantiq.scalaToJS.Main $ .main (Main.scala: 5) в
eu.semantiq.scalaToJS.Main.main (Main.scala) в
sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57)
в
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
в java.lang.reflect.Method.invoke (Method.java:616)
java.lang.RuntimeException: ненулевой код выхода: 1 при
scala.sys.package $ .error (package.scala: 27)
В scala REPL все работает
Добро пожаловать в Scala версии 2.9.0.1 (64-битная серверная виртуальная машина OpenJDK, Java
1.6.0_23). Введите выражения для их оценки. Тип: помощь для получения дополнительной информации.
scala> import scala.tools.nsc ._
import scala.tools.nsc ._
scala> var i = new Interpreter
предупреждение: было 4 устаревших
предупреждения; повторно запустите с -deprecation для подробных предупреждений: было 1
предупреждения об устаревании; повторно запустите с -deprecation для деталей
i: scala.tools.nsc.Interpreter = scala.tools.nsc.Interpreter@786bfd73
scala> println (i.parse ("2 + 3"))
Некоторые (List (2. $ плюс (3)))
Мне очень жаль моего плохого английского