如何从scala程序调用scala REPL控制台?

时间:2017-03-02 12:54:54

标签: java scala read-eval-print-loop scala-reflect

我需要在Scala应用程序中嵌入Scala REPL功能。我怎样才能做到这一点 ?我需要调用哪个Scala方法/类?

我看一下scala.tools.nsc.interpreter包,但我看不出怎么做。

1 个答案:

答案 0 :(得分:0)

@som-snytt给了我一个提示,我得到了解决方案。

import scala.tools.nsc.interpreter._

val lines: List[String] = List("println(\"Hello\")", "println(\"Word\")")
val ret: String = ILoop.run(lines)
// Verify if all runs OK

// Read stdin
val condition = ...
while (condition) {
  // convert to List[String] 
  val ret: String = ILoop.run(lines)
  // format and print the output
  println(ret)
  // Read stdin again
}