首页 > 解决方案 > 如何使用 Nashorn 在 Java8 中执行 JavaScript 文件

问题描述

我想在我的 Java 类中调用 Javascript,但找不到正确的方法。我在某处读到它可以使用 Nashorn 完成。有人可以让我知道确切的方法。

标签: java-8nashorn

解决方案


您可以使用“ScriptEngineManager”调用 JavaScript,如下所示。

ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
    ScriptEngine engine = scriptEngineManager.getEngineByName("nashorn");
    try {
        engine.eval(new FileReader("src\\demo.js"));
        Invocable invocable = (Invocable)engine;
        Object result = invocable.invokeFunction("fun1", "User");
        System.out.println(result);

    } catch (ScriptException e) {
        e.printStackTrace();
    }

您的 JS 文件 demo.js 将如下所示。

var fun1 = function(name){
print('Hi,'+name);
return "Greeting from javascript";
}

推荐阅读