两个应用程序实例如何用Java进行通信?

时间:2010-05-21 12:31:30

标签: java

我正在开发一个新的Java桌面应用程序。像媒体播放器这样的东西。我想在计算机启动时在后台加载大部分资源。但是用户可以在应用程序内或使用其他实用程序关闭此选项。那么,我想要做的是,如果应用程序的禁止实例已经在运行并且用户再次启动应用程序,那么我可以与已经运行的实例进行通信,以便它可以启动新窗口吗?

3 个答案:

答案 0 :(得分:7)

最常见的方法是在第一个应用程序在一个众所周知的端口上启动时打开ServerSocket

如果ServerSocket无法加载,可能是因为某个实例已在运行。

在这种情况下,您可以打开套接字并开始在两个实例之间传达您的订单。

但您也可以使用更复杂的解决方案,例如Jini或JGroups。

答案 1 :(得分:3)

编写应用程序,使其具有服务器部分

启动时,尝试与服务器通信(如果已经运行),如果可以,那么服务器应该打开一个新窗口,客户端应该死掉

这应该给你一个概述:

http://java.sun.com/docs/books/tutorial/networking/sockets/clientServer.html

答案 2 :(得分:1)

您可以使用端口。