3

Java Sripting API を使用することで、Java 内で JavaScript を実行できます。ただし、Java で JS からの戻り値を取得する方法を誰か説明してもらえますか? 以下の例では、script2 を呼び出すことができますか?

inv.invokeFunction("getValue", "Number", "2);

script2 から戻り値を取得するにはどうすればよいですか?

import javax.script.*;

public class InvokeScriptFunction {
public static void main(String[] args) throws Exception {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");

    // JavaScript code in a String
    String script1 = "function hello(name) {print ('Hello, ' + name);}";
    String script2 = "function getValue(a,b) { if (a==="Number") return 1; 
                     else return b;}";
    // evaluate script
    engine.eval(script1);
    engine.eval(script2);

    Invocable inv = (Invocable) engine;

    inv.invokeFunction("hello", "Scripting!!" );  //This one works.      
 }
}
4

1 に答える 1