-4

launch()Javaで2回呼び出す方法は?

次のような例外が与えられます。

ERROR IN MAIN:java.lang.IllegalStateException: 
    Application launch must not be called more than once
4

2 に答える 2

3

エラーメッセージ文字列をグーグルで検索し、検索結果の一部を読んだことに基づいて、次のいずれかを使用しているに違いないと思います

    javafx.application.Application.launch(...)

メソッド。メソッドのjavadocには次のように書かれています。

"スタンドアロン アプリケーションを起動します。このメソッドは、通常、メインの method() から呼び出されます。2 回以上呼び出してはなりません。呼び出さないと、例外がスローされます。 "

したがって、使用している「起動」について私の推測が正しければ、答えは次のとおりです。2launch回呼び出すことはできません。


(この制限が存在する理由を理解できるかどうかを確認するためにソースコードを読むつもりでしたが、コードを見つけるための通常のアプローチは失敗しました。「通常の場所」がソースコードにインデックスを付けていないように見える理由を知っている人はいますかJavaFX?)


より多くの情報を提供していただければ、別のアプローチを提案できる可能性があります。

于 2012-09-15T11:36:38.107 に答える
0

クラスだけでなく、ほとんどの場合アプリケーションコンポーネントを初期化するため、実際には2回呼び出すべきではありません。関数を数回「起動」する起動メソッドとコールバックに状態オブジェクトを追加することを検討する必要があります。

Launchメソッドが呼び出された回数をカウントするのは、アプリケーションがそれ以上呼び出すのは本当に危険だからです。上からの誰かがそのような行動を防ぐメカニズムを配置することを決定した場合、なぜそれを突破したいのでしょうか。

于 2012-09-15T11:23:47.583 に答える