我想要的只是在已经启动的应用程序上显示 GUI。我有 file.lock 单实例样式应用程序。我想要一些轻量级的东西,而不是 IPC 或 javaspace。
正在考虑使用 Server.accept() 来 ping 已启动的应用程序并使其执行 setVisible(true)
但如果端口正在使用中,这可能会导致麻烦。如果第一个端口被占用,人们可以设置一个端口号表/算法来遵循,但这又是一个坏主意。
您认为什么是替代方案?
最佳答案
监听端口可能是最好的方法——至少是最可靠的方法。另一种选择是写出一个文件并查找它,但这会在您的计算机崩溃且文件未被删除时导致问题。
如果您无法绑定(bind)到该端口,则仅此一项就可能表明服务器正在运行。
如果您希望能够恢复,请发送一条消息并期望在端口上返回特定响应。如果您无法绑定(bind)到端口并且没有从端口获得响应,那么可能不是您,因此请使用“此应用程序是否已在运行”对话框提示用户。
关于java 当应用程序正在运行并且 GUI 被隐藏时,然后再次启动同一个应用程序,注意到这一点并告诉已经正在运行的应用程序显示 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8233169/