的JavaFX造成致命错误SIGSEGV
问题描述:
我在OSX 10.12.5运行Java 8.131的JavaFX造成致命错误SIGSEGV
使用下面的代码
task.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(final WorkerStateEvent event) {
}
});
似乎会导致这个错误:https://pastebin.com/GbByfDeY
我已经到处看,可以似乎找不到解决办法。常见的答案是硬件问题,并等待java更新。我作为最后一次恢复发布。先谢谢你。
答
一种方法是将InvalidationListener
添加到Task
的stateProperty
。在Mac OS X 10.12.5上使用Java 1.8.0_131-b11测试此example时,以下监听器将在控制台上打印SUCCEEDED
。
task.stateProperty().addListener((Observable o) -> {
if (task.getState() == Worker.State.SUCCEEDED) {
System.out.println(task.getState());
}
});
测试在同一机器上同一example,以下onSucceeded
处理程序产生相同的结果。
task.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(final WorkerStateEvent event) {
System.out.println(task.getState());
}
});
分段故障的根本原因可能在其他地方。