2012-09-15 60 views
-3

如何在Java中調用launch()兩次?如何在Java中調用launch()兩次?

我給像一個例外:

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

他說什麼0? – sp00m

+4

嘗試更好地描述問題。 – MikkoP

+2

至少告訴我們你正在使用的API以及它使用'launch()'方法的類是什麼?! –

回答

0

這真的不應該叫了兩次,因爲它主要是初始化應用程序組件,不僅是你非常類。您應該考慮在啓動方法和回調中添加一些狀態對象,以便多次啓動您的功能。

Launch方法計算它有多少次被調用,因爲它是非常危險的一個應用程序來調用它多次。如果上面的某個人決定設置一個機制來阻止這樣的行爲,那麼爲什麼要通過它來違背。

3

基於谷歌搜索的錯誤消息字符串和閱讀一些搜索結果的,我相信,你必須使用的

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

方法之一。該javadoc的方法說這個:

「啓動一個獨立的應用此方法通常從主()方法稱爲它不能超過一次被稱爲多或將引發異常。 「

所以,如果我的猜測是正確的關於與‘推出’你正在使用,答案是:你不能調用launch兩次。


(我要閱讀源代碼,看看我是否能找出爲什麼這個限制的存在,但我正常的方法來查找代碼的失敗。沒有人知道爲什麼「的老地方」唐」 Ť似乎已經收錄爲JavaFX的源代碼?)


如果您提供更多信息,我們也許能夠提出一個替代方法。

+0

[部分的JavaFX源(http://hg.openjdk.java.net/openjfx/8/master/rt/file/tip)今天可用作[開JFX項目]的一部分(HTTP://的OpenJDK .java.net /項目/的OpenJFX /)。 [Application](http://hg.openjdk.java.net/openjfx/8/master/rt/file/tip/javafx-ui-common/src/javafx/application/Application.java)類調用內部的[ LauncherImpl](http://hg.openjdk.java.net/openjfx/8/master/rt/file/tip/javafx-ui-common/src/com/sun/javafx/application/LauncherImpl.java)類這證實你的猜測。 – jewelsea