启动第二个JavaFX应用程序

Sti*_*nky 4 java javafx javafx-2

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

更多背景信息.我希望我的JavaFx应用程序能够构建和运行JavaFx应用程序.现在它编译类内存,加载的类...这将是非常不幸不得不求助于一切写在文件系统,所以我可以在文件系统中一个罐子,这样我就可以使用exec来启动它.

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

Ser*_*nev 17

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

public void runAnotherApp(Class<? extends Application> anotherAppClass) throws Exception {
    Application app2 = anotherAppClass.newInstance(); 
    Stage anotherStage = new Stage();
    app2.start(anotherStage);
}
Run Code Online (Sandbox Code Playgroud)

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