這可能有點......非正統的問題。我有多個應用程序在同一個JVM中運行,每個應用程序都在自己的類加載器中。這些應用程序需要與彼此進行通信(只有一點點),但我無法將自己的共享代碼添加到這些應用程序共享的類加載器中,所以我需要使用標準Java運行時提供的工具來完成這些工作。同一虛擬機中不同應用程序之間的通信
我認爲沿着使用System
屬性的路線。然而,這將是很難使線程安全,但我想我可以使用在一個長期的隨機字符串。
還有更多選擇?
我想要的通信如下。這可能會影響合適的選項。
- 每個應用按順序將其名稱放入共享隊列中。
- 每個應用程序在同一時間開始輪詢隊列以查看其自己的名稱是否在頭部。如果是,它將執行長時間運行的初始化任務,然後從隊列中取出其名稱。
TCP連接。只是忽視他們作爲共同居民的地位。 – bmargulies
也許你可以使用管道: http://stackoverflow.com/questions/4974989/concurrent-read-write-of-named-pipe-in-java-on-windows – isnot2bad