启动第二个JavaFX应用程序

我正在尝试从JavaFx应用程序中启动JavaFx应用程序,但看起来Application.launch()只能被调用一次。 这是否意味着我必须启动一个单独的JVM …就像在exec中一样(“java ……还是有另一种方式?

更多背景信息。 我希望我的JavaFx应用程序能够构建和运行JavaFx应用程序。 现在它在内存中编译类,加载类……真的很遗憾不得不求助于将所有内容写入文件系统,这样我就可以在文件系统上获得一个jar,所以我可以使用exec来启动它。

作为第二个问题……有没有办法打开另一个JavaFx窗口并获取阶段并将其传递给我新编译和加载的Application子类?

如果要在同一个JVM中执行另一个JavaFX应用程序,只需创建它的实例,手动创建Stage并调用Application#start()

 public void runAnotherApp(Class anotherAppClass) throws Exception { Application app2 = anotherAppClass.newInstance(); Stage anotherStage = new Stage(); app2.start(anotherStage); } 

注意:如果你在另一个Application.init()使用标准初始化的特殊function,例如Application.init()Application.getParameters() ,它将不起作用