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

3

我正在使用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 错误。
谢谢, Sony

两个 println 都起作用了吗? - Dilum Ranatunga
是的,println语句工作正常。我在test.js中编辑了代码。 - sony
1个回答

1

在JS中:

var result=test (i);

在Java中

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接