启动第二个JavaFX应用程序

时间:2012-11-18 01:36:46

标签: java javafx-2 javafx

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

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

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

1 个答案:

答案 0 :(得分:16)

如果要在同一个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);
}

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