Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript向Java调用时出现不可恢复的stackoverflow错误_Java_Javascript_Javafx_Stack Overflow - Fatal编程技术网

从JavaScript向Java调用时出现不可恢复的stackoverflow错误

从JavaScript向Java调用时出现不可恢复的stackoverflow错误,java,javascript,javafx,stack-overflow,Java,Javascript,Javafx,Stack Overflow,我遇到了一个我无法理解的“不可恢复的堆栈溢出错误”。从:您需要创建一个接口对象(任何类),并通过调用JSObject.setMember()让JavaScript知道它 以下是Java代码共享和使用interface对象: // somewhere in the code JSObject window = (JSObject) engine.executeScript("window"); window.setMember("foo", new Foo()); // <-- shares

我遇到了一个我无法理解的“不可恢复的堆栈溢出错误”。从:您需要创建一个接口对象(任何类),并通过调用
JSObject.setMember()
让JavaScript知道它

以下是Java代码共享和使用interface对象:

// somewhere in the code
JSObject window = (JSObject) engine.executeScript("window");
window.setMember("foo", new Foo()); // <-- shares
window.call("testFoo");             // <-- uses

// somewhere else
class Foo {
    public void bar() {
        System.out.println("baz");
    }
}

如果我像上面显示的那样手动触发它,或者通过某个JavaScript事件触发它,就会发生这种情况。

答案在评论中,我不敢相信我已经尝试了好几个小时了,这是一个非常快速的解决方案


事实证明,公开的接口必须是公共的

我尝试过它,它对我来说是有效的(Java1.8.0\u11)。如果你发布一个帖子,也许会有帮助。我认为Foo应该是公开的,否则我觉得它看起来没问题(不用尝试)。您链接的文档是基于早期开发人员预览的旧博客文章。更现代的文档可用于。我喜欢您如何使用stackoverflow从无法恢复的stackoverflow错误中获得恢复帮助。