2010-05-21 48 views
4

我正在開發一個新的Java桌面應用程序。就像媒體播放器一樣。我想在計算機啓動時在後臺加載大部分資源。但用戶可以在應用程序中關閉該選項或使用其他實用程序。那麼,我想要做的是如果應用程序的禁用實例已經運行並且用戶再次啓動應用程序,那麼我可以與已經運行的實例進行通信,以便它可以啓動一個新窗口?應用程序的兩個實例如何在Java中進行通信?

回答

7

最知名的方式來做到這一點是打開一個ServerSocket當第一應用程序啓動一個衆所周知的端口上。

如果ServerSocket無法加載,可能是因爲某個實例已在運行。

在這種情況下,您可以打開一個套接字並開始在兩個實例之間傳達您的訂單。

但您也可以使用更復雜的解決方案,如Jini或JGroups。

+1

+1用於提及更高級別的Java特定解決方案(如JGroups)。 – Thilo 2010-05-21 12:39:17

+0

另請參見ServerSockeChannel,它進一步封裝了ServerSocket。 – 2010-05-21 12:53:54

+0

@Thilo JGroups一直是我第一個真正喜歡的不立即使用的圖書館。我總是發現它的能力相當神奇,至少可以說。 – Riduidel 2010-05-21 12:58:46

相關問題