如何在Java中调用launch()两次?

时间:2012-09-15 11:18:03

标签: java runtime-error

如何在Java中调用launch()两次?

我有一个例外:

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

2 个答案:

答案 0 :(得分:3)

基于谷歌搜索错误消息字符串并阅读一些搜索结果,我相信你必须使用其中一个

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

方法。方法的javadoc说明了这一点:

  

“启动独立应用程序。此方法通常从main方法()调用。不得多次调用它,否则将抛出异常。

因此,如果我的猜测是正确的,您正在使用“启动”,答案是:您无法再拨打launch两次。


(我打算阅读源代码,看看我是否能弄清楚为什么存在这种限制,但我找到代码的常规方法失败了。有谁知道为什么“通常的地方”没有出现索引JavaFX的源代码?)


如果您提供了更多信息,我们可能会建议另一种方法。

答案 1 :(得分:0)

它实际上不应该被调用两次,因为它主要是初始化应用程序组件,而不仅仅是你的类。您应该考虑在启动方法中添加一些状态对象以及多次“启动”您的函数的回调。

Launch方法计算它被调用的次数,因为应用程序调用它的次数确实很危险。如果上面的某个人决定建立一个阻止这种行为的机制,你为什么要通过它来破坏它。