的JavaFX造成致命错误SIGSEGV

的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添加到TaskstateProperty。在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()); 
     } 
    }); 

分段故障的根本原因可能在其他地方。