我试图通过Java调用JavaScript中的函数。当直接以字符串形式读取脚本时,这很好,但我使用的是编译脚本。
当我使用已编译的脚本执行此操作时,如果我还添加绑定,它会给我提供找不到的方法。如果没有绑定,它可以工作,但是当然,函数会失败,因为它需要绑定。
有什么想法吗?
CompiledScript script = ... get script....
Bindings bindings = script.getEngine().createBindings();
Logger scriptLogger = LogManager.getLogger("TEST_SCRIPT");
bindings.put("log", scriptLogger);
//script.eval(bindings); -- this way fails
script.eval(); // -- this way works
Invocable invocable = (Invocable) script.getEngine();
invocable.invokeFunction(methodName);
蒂亚