我当前的JavaScript看起来像这样:
o.timer(function (){
//Call from Java
print("Hello World");
}).start(1000);
Run Code Online (Sandbox Code Playgroud)
在Java端,我尝试调用一个jdk.nashorn.internal.runtime.ScriptFunction女巫
ScriptFunction callback = ...
callback.getBoundInvokeHandle(MethodType.methodType(Object.class)).invoke();
Run Code Online (Sandbox Code Playgroud)
但是它抛出了这个:
java.lang.IllegalStateException: no current global instance
at jdk.nashorn.internal.objects.Global.instance(Global.java:474)
at jdk.nashorn.internal.objects.ScriptFunctionImpl.<init>(ScriptFunctionImpl.java:145)
at jdk.nashorn.internal.scripts.Script$\^eval\_._L3(<eval>:6)
at demo.Mainr$1.run(Main.java:38)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Run Code Online (Sandbox Code Playgroud)
如何调用此功能?
在我的JavaScript中,我有一个JSON对象,我用它作为Java对象的参数.在Java方面,我收到一个jdk.nashorn.internal.scripts.JO4但只有jdk.nashorn.internal.scripts.JO类出口.如何访问此JSON对象?
var test = {
"id": 10,
"Hello": "World",
"test": {
"Lorem" : "Ipsum",
"java" : true
}
}
m.call(test);
Run Code Online (Sandbox Code Playgroud)