Java 如何从scala程序调用scala REPL控制台?
我需要在我的Scala应用程序中嵌入Scala REPL功能。我该怎么做?我需要调用哪个Scala方法/类Java 如何从scala程序调用scala REPL控制台?,java,scala,read-eval-print-loop,scala-reflect,Java,Scala,Read Eval Print Loop,Scala Reflect,我需要在我的Scala应用程序中嵌入Scala REPL功能。我该怎么做?我需要调用哪个Scala方法/类 我看了一下scala.tools.nsc.interpreter包,但不知道怎么做。@som snytt给了我一个提示,我得到了解决方案 import scala.tools.nsc.interpreter._ val lines: List[String] = List("println(\"Hello\")", "println(\"Word\")") val ret: String
我看了一下scala.tools.nsc.interpreter包,但不知道怎么做。@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
}
ILoop是REPL,
过程(设置)
是入口点。IMain本身就是解释器,exploration(line)
是入口点。在2.12中还有单独的javax.script
用法,Scripted
。菊石REPL可以提供更好的嵌入体验。