Возвращает логическое значение после оценки кода javaScript с использованием объекта javax.script.ScriptEngine - PullRequest
3 голосов
/ 14 марта 2012

Я использую пакет javax.script. * Для оценки javascript в файле Java. Я использую объект 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

1 Ответ

1 голос
/ 18 мая 2012

В JS:

var result=test (i);

В Java

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