JavaFX-Platform.runLater未在mac上执行

JavaFX-Platform.runLater未在mac上执行,java,multithreading,macos,javafx,Java,Multithreading,Macos,Javafx,我有一个JavaFX应用程序,它在启动前运行一个线程来加载应用程序,我在一个线程上这样做: new Thread(() -> { new Terminalinitializer(); }).start(); 在Terminalinitializer中,我要做的第一件事是显示启动屏幕,然后继续加载应用程序,以显示我使用的启动屏幕: Platform.runLater(() -> { SplashScreenManage

我有一个JavaFX应用程序,它在启动前运行一个线程来加载应用程序,我在一个线程上这样做:

    new Thread(() -> {

            new Terminalinitializer();

    }).start();
Terminalinitializer
中,我要做的第一件事是显示启动屏幕,然后继续加载应用程序,以显示我使用的启动屏幕:

  Platform.runLater(() -> {

        SplashScreenManager.instance.setString(I18NSupport.get("Terminal.ESTABLISHING_CONN"));
        SplashScreenManager.instance.setIndetermined(true);
        SplashScreenManager.instance.showSplashScreen();

 });
SplashScreenManager是一个定制的类,它只显示一个启动屏幕

然后,当我完成时,我会执行以下操作来隐藏启动屏幕:

Platform.runLater(() -> {
     SplashScreenManager.instance.hideSplashScreen();
 });
在Linux和Windows上,一切都非常好,但在Mac上,它只是挂在第二个
平台上

调试显示线程正常完成,然后停止,而不执行
平台。runLater

在发布这个问题之前,我一直在寻找解决方案,但运气不佳


已尝试将
setImplicitExit
设置为false。

当应用程序开始显示启动屏幕时(因为在用户可以与之交互之前,您必须加载一些数据),以及当您完成加载所需数据时,您需要隐藏启动屏幕?有点,,使用闪屏的实际原因是从服务器加载一些数据以本地存储,因此我确保用户有一个最新的本地存储@GoXR3PlusAre,您知道吗?SplashScreenManager.instance.showSplashScreen()
实际上做了什么?是仅JavaFX,还是混合了AWT/Swing?将
新TerminaliInitializer()
包装到try/catch块中并添加异常日志记录,很可能在应用程序开始显示初始屏幕时,在任何需要的地方都没有记录某些异常(因为在用户与之交互之前,您必须加载一些数据)当你加载完所需的数据后,你想隐藏闪屏?有点,使用闪屏的实际原因是从服务器加载一些数据以本地存储,所以我确保用户有一个最新的本地存储@goxr3plus你知道吗?什么是
SplashScreenManager.instance.showssplashscreen()
你真的这么做了吗?是只使用JavaFX,还是混合了AWT/Swing?将
新TerminaliInitializer()
包装到try/catch块中并添加异常日志记录,很可能您有一些未记录的异常