在java中运行两次GUI应用程序

时间:2013-01-28 18:10:17

标签: java spring swing

我在java中有一个小的gui swing应用程序(Chat),我需要多次运行它,每次都应该给我一个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>

1 个答案:

答案 0 :(得分:2)

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

但我认为解释是你检查了运行配置中的“仅实例化”复选框,它正好用于使IntelliJ一次只启动应用程序实例的一个实例。 / p>

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