java,当应用程序运行且GUI隐藏时,再次启动同一应用程序,注意到这一点,只需告诉已经运行的应用程序显示GUI即可

java,当应用程序运行且GUI隐藏时,再次启动同一应用程序,注意到这一点,只需告诉已经运行的应用程序显示GUI即可,java,ipc,Java,Ipc,我只想在已经启动的应用程序上显示GUI。我有file.lock就地单实例风格的应用程序。我想要一些轻量级的东西,而不是IPC或javaspace 正在考虑使用Server.accept()ping已启动的应用程序,并使其执行setVisible(true),但如果端口正在使用,则可能会导致问题。如果使用第一个端口,可以设置一个端口号表/算法,但这也是一个坏主意 您的想法是什么,有哪些替代方案?监听端口可能是最好的方法,至少是最可靠的方法。另一种选择是写出一个文件并查找它,但当您的计算机崩溃且文件

我只想在已经启动的应用程序上显示GUI。我有file.lock就地单实例风格的应用程序。我想要一些轻量级的东西,而不是IPC或javaspace

正在考虑使用Server.accept()ping已启动的应用程序,并使其执行
setVisible(true)
,但如果端口正在使用,则可能会导致问题。如果使用第一个端口,可以设置一个端口号表/算法,但这也是一个坏主意


您的想法是什么,有哪些替代方案?

监听端口可能是最好的方法,至少是最可靠的方法。另一种选择是写出一个文件并查找它,但当您的计算机崩溃且文件未被删除时,这会导致问题

如果无法绑定到端口,那么这本身就可能表明服务器正在运行


如果您想要恢复功能,请发送一条消息,并期望端口返回特定响应。如果您无法绑定到端口,并且没有收到端口的响应,那么可能不是您,因此请用“此应用程序是否已在运行”对话框提示用户。

您的意思是
SingleInstance
我已经设置了SingleInstance,但我的应用程序有一个托盘图标,有时应用程序GUI被隐藏。如果用户启动应用程序的另一个实例,该实例必须将第一个实例设置为可设置(true)和提交退出(0),然后感谢链接,但如上所述,我已经设置了singleinstance。是“此应用程序是否已在运行”对话框。如果我在应用程序列表栏中有GUI,这可能是一个解决方案,但唯一可见的部分是托盘图标。因此,我必须找到一种方法使setVisible(true)当然可以发送一个应用程序正在运行的msgbox,并要求用户单击托盘图标。是的,这是一种公认的行为。问题解决了,我想谢谢你的帮助