我在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>
答案 0 :(得分:2)
一旦正常工作就没有理由启动应用程序,并且第二次启动它并没有做任何事情,因为它们是在不同的JVM中启动的。如果第一次启动尝试打开TCP套接字或锁定文件,并且第二次启动尝试执行相同的操作,则可能会出现问题。
但我认为解释是你检查了运行配置中的“仅实例化”复选框,它正好用于使IntelliJ一次只启动应用程序实例的一个实例。 / p>
如果不是这样,请提供更多详细信息:启动第二个应用时会发生什么?你有例外吗?如果是这样,堆栈跟踪是什么?如果没有,您的申请会做什么?