Вам необходимо передать значение параметра через объект Binding следующим образом:
package rhinodemo;
import java.util.Date;
import javax.script.*;
public class RhinoDemo {
public static void main(String[] args) throws Exception {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
Bindings bindings = engine.createBindings();
bindings.put("currentTime", new Date());
engine.eval(
"function run(x) { println('x=' + x); }" +
"run(currentTime);", bindings);
}
}
Если вы хотите, чтобы ваш Java-код вызывал функцию Javascript с именем run()
, то создайте скрипт, который (а) определяет функцию run()
и (б) вызывает эту функцию, передавая ей параметр.Затем на стороне Java вам нужно создать объект Bindings и установить значение этого параметра bindings.put(currentTime, new Date())
.