我正在尝试从 JavaFx 应用程序中启动 JavaFx 应用程序,但看起来 Application.launch() 只能调用一次。这是否意味着我必须启动一个单独的 JVM... 就像在 exec("java... 或者有其他方法吗?
更多背景信息。我希望我的 JavaFx 应用程序能够构建和运行 JavaFx 应用程序。现在它在内存中编译类,加载类……如果我不得不将所有内容写入文件系统,这样我就可以在文件系统上获得一个 jar,这样我就可以使用 exec 来启动它,这真的很不幸。
作为次要问题...有没有办法打开另一个 JavaFx 窗口并获取舞台并将其传递给我新编译和加载的应用程序子类?
最佳答案
如果您想在同一个 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()
关于java - 启动第二个 JavaFX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13436659/