4

JavaFx アプリケーション内から JavaFx アプリケーションを起動しようとしていますが、Application.launch() は 1 回しか呼び出せないようです。これは、別の JVM を起動する必要があるということですか... exec("java... または別の方法はありますか?

詳細な背景情報。JavaFx アプリで JavaFx アプリをビルドして実行できるようにしたいと考えています。現在、メモリ内でクラスをコンパイルし、クラスをロードしています...ファイルシステムにすべてを書き込む必要があるのは本当に残念です。ファイルシステムでjarを取得できるため、execを使用して起動できます。

二次的な質問として...別のJavaFxウィンドウを開いてステージを取得し、それを新しくコンパイルしてロードしたApplicationサブクラスに渡す方法はありますか?

4

1 に答える 1

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);
}

注意: anotherApp で標準初期化の特別な機能を使用する場合は機能しませんApplication.init()Application.getParameters()

于 2012-11-18T10:54:21.593 に答える