如何在 Java 中使用 JavaScript?[已关闭]

2022-09-01 00:35:29

我想构建一个小产品,我想在其中提供一种功能,用户可以在其中编写一种JavaScript的脚本语言。

还有来自JavaScript能够构建对象并在其上调用方法。

有没有这方面的框架?


答案 1

犀牛就是你要找的。

Rhino 是完全用 Java 编写的 JavaScript 的开源实现。它通常嵌入到 Java 应用程序中,以便为最终用户提供脚本。

更新:现在,Nashorn,它是Java的JavaScript引擎,可以与jdk8一起使用。

2022年更新:Nashorn在Java 11中被弃用,然后在Java 15中最终被删除


答案 2

Java 包括从版本 6 开始的脚本语言扩展包

请参阅 Rhino 项目文档,了解如何在 Java 中嵌入 JavaScript 解释器

[编辑]

下面是一个如何将 Java 对象公开给解释型脚本的小示例:

public class JS {
  public static void main(String args[]) throws Exception {
    ScriptEngine js = new ScriptEngineManager().getEngineByName("javascript");
    Bindings bindings = js.getBindings(ScriptContext.ENGINE_SCOPE);
    bindings.put("stdout", System.out);
    js.eval("stdout.println(Math.cos(Math.PI));");
    // Prints "-1.0" to the standard output stream.
  }
}