使用Platform.exit()后,JavaFX应用程序不会终止

时间:2013-12-10 08:00:24

标签: java multithreading javafx

我正在使用JavaFX 2.2,我有一个扩展Application Class的类。 这是我的代码。在那之后我的程序完成了它的工作,它不会终止并继续它的生命。我做什么?

new JFXPanel();
Platform.runLater(new Runnable() {
        @Override
        public void run() {
            ApplicationExtendedClass s = new ApplicationExtendedClass();
            s.start(new Stage());
        }
    });
    synchronized (SynchronyzingObject.getInstance()) {
        try {
            SynchronyzingObject.getInstance().wait();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    Platform.exit();

我使用SynchronyzingObject同步我的线程之间的工作并等待另一个线程结束的工作,然后Platform.exit()工作以退出该线程。 在通知SynchronyzingObject之前,我在该线程的工作结束时编写了Platform.exit()。 我该怎么做才能完成我的程序。

编辑:

这个应用程序运行在另一个程序的中间,以便做一些数据并将它们添加到数据库,并在完成此程序后我不希望我的整个项目被关闭,我只是希望这个应用程序的线程得到终止

1 个答案:

答案 0 :(得分:10)

使用System.exit(0);代码关闭应用程序。

Platform.exit();
System.exit(0);