我正在尝试将交互式shell嵌入到我的Scala应用程序中。我使用以下系统:
- Scala 2.10.0
- sbt 0.12.2
- Akka 2.1.0
- sbt-lwjgl-plugin 3.1.4
import akka.actor.Actor
import scala.tools.nsc.Settings
import scala.tools.nsc.interpreter.IMain
class TestActor extends Actor {
def receive => {
case _ => {
val settings = new Settings
settings.usejavacp.value = true
settings embeddedDefaults ActorSystem.getClass.getClassLoader
val repl = new IMain(settings)
repl.interpret("import java._") // working
repl.interpret("import scala._") // working
repl.interpret("import akka._") // not working
repl.interpret("import other.java.class.Bar") // not working
}
}
}
Sbt被设置为fork := true
。我尝试了几种设置和类路径配置,但没有找到可行的配置。是否有人可以给我一个提示/解决方案来解决这个问题?
sbt
运行应用程序时,会出现此问题。我不知道如何解决这个问题,但您可以使用sbt-assembly
创建一个自包含的jar文件,并在sbt
之外直接运行它,那样就可以解决问题了。 - 0__