如何使用Nashorn在Java8中执行JavaScript文件

时间:2018-05-08 11:17:39

标签: java-8 nashorn

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

1 个答案:

答案 0 :(得分:8)

您可以使用" 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";
}