Rhino вызвать JavaScript-функцию из Java

Минимально необходимый код для вызова функции без параметров:

package ru.mydesignstudio.mds01;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class RhinoJavaX {
    public void run() {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("javascript");
        String f = "function jsFunction(){" +
                "print('Hello from JavaScript');" +
                "}";
        try {
            engine.eval(f);
            Invocable inv = (Invocable) engine;
            inv.invokeFunction("jsFunction");
        } catch (ScriptException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }

    public static void main(String args[]) {
        RhinoJavaX rhino = new RhinoJavaX();
        rhino.run();
    }
}

После запуска получаем результат:

Hello from JavaScript

Process finished with exit code 0

Модифицируем код для вызова JavaScript-функции с параметрами:

package ru.mydesignstudio.mds01;

import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class RhinoJavaX {
    public void run() {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("javascript");
        String f = "function jsFunction(name){" +
                "print('Hello from JavaScript to ' + name);" +
                "}";
        try {
            engine.eval(f);
            Invocable inv = (Invocable) engine;
            inv.invokeFunction("jsFunction", "John Smith");
        } catch (ScriptException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }

    public static void main(String args[]) {
        RhinoJavaX rhino = new RhinoJavaX();
        rhino.run();
    }
}

Результат:

Hello from JavaScript to John Smith

Process finished with exit code 0