1

我在java中有一个小的gui swing应用程序(聊天),我需要多次运行它,每次它应该给我一个GUI聊天窗口,

它第一次运行良好,当我尝试在 IntelliJ 中再次运行相同的应用程序时,它不会再生成 GUI 窗口

任何帮助都非常感谢您提前谢谢

public static void main(String[] args) throws IOException, InterruptedException, SQLException {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("sconfig.xml");
    CClient client = (CClient) context.getBean("simpleClient");
    client.init();
}

应用环境:

 <bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL">
        <!-- value>tcp://localhost:61616</value -->
        <value>vm://localhost</value>
    </property>
</bean>

<!-- <bean id="pooledJmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
      destroy-method="stop">
    <property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>-->
<bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="jmsExample" />
</bean>

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>

<bean id="simpleClient" class="com.CClient">
    <property name="template" ref="jmsTemplate"/>
    <property name="destination" ref="destination" />
</bean>

<bean id="messageListener" class="com.ExampleListener" />

<!-- and this is the message listener container -->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="jmsConnectionFactory"/>
    <property name="destination" ref="destination"/>
    <property name="messageListener" ref="messageListener" />
</bean>
4

1 回答 1

2

没有理由启动一个应用程序一次就可以正常运行,而第二次启动它就没有任何作用,因为它们是在不同的 JVM 中启动的。如果第一次启动尝试打开 TCP 套接字或锁定文件,而第二次启动尝试做同样的事情,则可能会出现问题。

但我认为解释是您选中了Run Configuration中的“仅单个实例”复选框,该复选框恰好用于使 IntelliJ 一次仅启动应用程序实例的一个实例。

如果不是这种情况,请提供更多详细信息:启动第二个应用程序时会发生什么?你有例外吗?如果是这样,堆栈跟踪是什么?如果没有,您的应用程序是做什么的?

于 2013-01-28T18:39:11.647 回答