我有兩個Java程序,每個都運行在它自己的JVM實例中?他們可以使用共享內存或管道等任何IPC技術相互通信嗎?有沒有辦法做到這一點?是否可以在Java中進行InterProcess通信?
2
A
回答
3
是; D-BUS和Pipes都易於使用和跨平臺。 D-BUS對於通用消息傳遞IPC和用於發送批量數據的管道非常有用。
如果您需要支持多個客戶端連接到中央服務器,您還可以在本地主機上打開TCP或UDP套接字。
我還發現一個implementation of UNIX sockets in Java,雖然它需要JNI。
2
http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp
Java遠程方法調用(Java RMI的)使程序員可以創建分佈式爲基礎的技術,以基於Java技術的應用中,其中遠程Java對象的方法可從其他Java虛擬機被調用的Java *,可能在不同的主機上。 RMI使用對象序列化編組和解組參數,不截斷類型,支持真正的面向對象的多態。
1
當然。看看RMI或共享內存概念,如Java Spaces。
0
在Java NIO中使用MemoryMappedByteBuffer以在進程之間共享內存。
0
對於來自Apache的名爲Plasma的柱狀(即基於陣列)數據的語言不可知的IPC有一個相當新的倡議。
到目前爲止(17年9月)沒有JVM綁定,但由於該項目得到了Spark之類的支持,我認爲在我們看到實現之前不會太久。
但是我的理解是,有不是一般的IPC系統,因爲它是朝向像double
,long
基元的共享陣列面向,用於科學計算,而不是類/對象;儘管我在這裏可能是錯的。 另一方面,它也是與語言無關的,因此您可以使用它與另一個(非JVM)運行時進行通信。但是,OP確實要求Java IPC,因此這可能是無關緊要的。
相關問題
- 1. 是否可以通過subprocess.Popen與子子進程進行通信?
- 2. 在RS232通信中是否可以進行欺騙攻擊?
- 3. 是否可以通過串行bt橋與iPhone進行通信?
- 4. 是否可以在iPhone上進行流媒體WiFi通信?
- 5. 查找是否可以進行數據通信
- 6. 是否可以使用Angular與PHP進行通信?
- 7. java如何在java中進行通信
- 8. 是否可以通過web2py應用程序中的web服務進行通信?
- 9. 是否可以在java中進行「原子」中斷檢查?
- 10. Boost:是否有僅用於線程通信的interprocess :: message_queue機制?
- 11. 是否可以在Java中進行錯誤恢復?
- 12. 是否可以在java中執行二進制文件?
- 13. 是否可以在Java中進行JavaScript樣式設置?
- 14. 是否可以在Java中進行命令提示符?
- 15. 在Android的Realm中可以進行內部進程通信嗎?
- 16. 是否可以通過USB端口與iOS計算機進行通信,以便與Windows計算機通信?
- 17. 線程之間可以通過LINX通信進行通信嗎?
- 18. 在java rmi中通信是否安全?
- 19. 是否有任何Java工具與外部CLI進行通信?
- 20. Web瀏覽器是否可以與Excel進程間通信
- 21. Java程序可以和終端進行通信嗎?
- 22. HTML5可以與Java Serversocketchannel進行通信嗎?
- 23. Java DecimalFormat,是否可以在小數部分進行分組?
- 24. 是否可以通過Hive中的恆定列進行分組?
- 25. 通過Comport以14400波特率與Java進行通信 - 串行通信
- 26. 是否可以使用WCF與Windows內核模式軟件進行通信?
- 27. 是否可以通過以下函數進行列表理解?
- 28. 我們是否可以使用React js進行信標檢測
- 29. 我可以在Android中使用全局緩衝區嗎?其他進程可以進行通信,甚至可以從本地C++代碼進行通信
- 30. 是否可以通過POST而不是GET進行RedirectToRoute?