有没有任何库能够让我们从Scala代码中运行JavaScript代码(作为
String
)?无论JavaScript代码是在JVM中运行还是在生成的JavaScript解释器中运行都不重要。 String
)?无论JavaScript代码是在JVM中运行还是在生成的JavaScript解释器中运行都不重要。ScriptEngine
。import javax.script.ScriptEngineManager
val engine = new ScriptEngineManager().getEngineByMimeType("text/javascript")
val result = engine.eval("1 + 1")
println(result)
这里使用Rhino适用于JDK 7,Nashorn适用于JDK 8。
Java代码和Nashorn之间的交互非常无缝。
ProcessBuilder
。import java.io.ByteArrayInputStream
import scala.sys.process._
val input = new ByteArrayInputStream("console.log(1 + 1)".getBytes)
val result = ("node" #< input).!!
println(result)
import scala.scalajs.js
val result = js.eval("1 + 1")
println(result)