在使用javax.script.ScriptEngine对象评估javaScript代码后返回布尔值

Return boolean value after a javaScript code is evaluated using javax.script.ScriptEngine object

本文关键字:代码 javaScript 返回 布尔值 评估 对象 javax script ScriptEngine      更新时间:2023-09-26

我使用javax.script.*包来评估Java文件中的javascript。我正在使用一个ScriptEngine对象来评估一些javaScript代码。javaScript代码返回一个布尔值。我不知道如何在Java文件中捕获布尔值。例如,请参阅:

import javax.script.*;
public class Test {
    public static void main(String[] args) throws Exception {
        ScriptEngineManager factory = new ScriptEngineManager();
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        String filepath = "../test.js";
        engine.eval(new java.io.FileReader(filepath));
    }
}

test.js

function test(value) {
    if(value==1) {
       println("True");
       return true;
    } else {
       println("False");
       return false;
    }
}
var i=1;
test (i);

我尝试了以下方法:

Boolean result = (Boolean) engine.eval(new java.io.FileReader(filepath));

上面一行抛出java.lang.NullPointerException错误。

谢谢,索尼

在JS中:

var result=test (i);

在Java 中

engine.eval....
engine.get("result");