gpt4 book ai didi

javascript - 如何从 Scala (JVM) 中运行 JavaScript 代码?

转载 作者:搜寻专家 更新时间:2023-11-01 05:00:01 24 4
gpt4 key购买 nike

是否有任何库允许我们从 Scala 代码运行 JavaScript 代码(作为 String)? JavaScript 代码是在 JVM 中运行还是在生成的 JavaScript 解释器中运行并不重要。

最佳答案

如果要使用当前的JVM进程,使用JVM的ScriptEngine

import javax.script.ScriptEngineManager

val engine = new ScriptEngineManager().getEngineByMimeType("text/javascript")
val result = engine.eval("1 + 1")
println(result)

这对 JDK 7 使用 Rhino,对 JDK 8 使用 Nashorn。

Java 代码和 Nashorn 之间的交互相当无缝。


如果您想使用新进程,请将 ProcessBuilder 与外部 JS 运行时一起使用。

import java.io.ByteArrayInputStream
import scala.sys.process._

val input = new ByteArrayInputStream("console.log(1 + 1)".getBytes)
val result = ("node" #< input).!!
println(result)

如果 JS 对 CPU 使用率很高,这可能会给你最快的执行速度。它还允许 JS 使用 Node.js API,尽管它需要安装 Node.js。


如果你想使用当前的 JS 进程(即如果你正在使用 Scala.js ),

import scala.scalajs.js

val result = js.eval("1 + 1")
println(result)

关于javascript - 如何从 Scala (JVM) 中运行 JavaScript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36764639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com