我正在编写一个游戏,我正在使用jMonkeyEngine和JavaFx。我有一个用JavaFx编写的启动程序,它可以启动一个新线程并在该线程上运行jMonkeyEngine。当它这样做时,它调用Platform.exit(),以便当jMonkeyEngine线程结束时游戏的进程结束。
除非游戏崩溃,否则此功能完全正常。在这种情况下,我想重新启动JavaFx以向用户提供崩溃对话框。我的第一个想法是创建一个扩展Application的单独的CrashDialoge类,但这并不实用,因为静态启动方法创建了CrashDialoge类的新实例,因此无法传递包含崩溃信息的Throwable对象。我知道我可以使用静态变量来绕过这个,但是如果由于某种原因创建了多个CrashDialoge,这会破坏。我可以使用Locks解决这个问题,但我想知道是否有更好的方法将Throwable对象传递给新的应用程序,可能是通过使用现有的Application对象启动JavaFx。