2017-07-14 49 views
0

我在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更新。我作爲最後一次恢復發佈。先謝謝你。

回答

1

一種方法是將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()); 
     } 
    }); 

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