如何在Simple Build Tool项目中调用scala解释器?

man*_*man 20 interpreter scala sbt

我的scala程序正在使用scala.tools.nsc.interpreter.IMain中的编译器接口.当我使用scalac进行编译时,一切都按预期工作.但是当我用sbt编译它仍然编译时,但在执行时它会在从IMain实例调用explain-method时抛出以下错误消息:

Failed to initialize compiler: object scala not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.
Run Code Online (Sandbox Code Playgroud)

如果我在IMain实例上使用settings.usejavacp.value = true,则会出现以下异常:

java.lang.Error: typeConstructor inapplicable for <none>
Run Code Online (Sandbox Code Playgroud)

我的SBT项目定义:

class Project(info: ProjectInfo) extends DefaultProject(info){
    val scalaSwing = "org.scala-lang" % "scala-swing" % "2.9.0"
    val scalaCompiler = "org.scala-lang" % "scala-compiler" % "2.9.0"
}
Run Code Online (Sandbox Code Playgroud)

这有什么不对?如何在Simple Build Tool Project中使用解释器?

我正在使用Scala 2.9.0Simple Build Tool 0.7.7

Mik*_*yer 24

sbt console // Starts a Scala interpreter
Run Code Online (Sandbox Code Playgroud)

这是新常见问题解答(以前的答案已经过时)

http://www.scala-sbt.org/0.12.4/docs/faq.html

您还可以找到最新版本的常见问题解答.
请注意,sbt console-quick加载控制台时没有依赖项.