我正在編寫一個程序,啓動另一個運行某些代碼的java進程。 有沒有什麼辦法可以與那個進程「交談」來調用正在運行的類的方法?訪問其他Java進程
1
A
回答
7
你將不得不使用某種形式的遠程處理。那可能是:
- RMI; Web服務(JAX-WS,Spring Web服務等);
- 插座;
- 嵌入式Web容器;
- 等
1
他們將能夠通過管道或插座進行通信。您可以通過它創建自己的通信協議,或者使用類似RMI的東西。
0
RMI是一種簡單的Java遠程技術。它本身並不能解決在大規模客戶端和服務器方案時傾向於出現的問題,例如發生錯誤時的故障轉移。
因此,當需要一些更強的東西時,通常的模式是在服務器端使用一些「App Server」技術。您可以使用諸如EJB 3或Spring之類的框架快速打開可遠程訪問的服務,也可以使用JMS等技術。
我的推薦是咬緊牙關,立即超越RMI,最近App Server和框架的成熟以及低成本和免費App Server的可用性使得入門成本相當低。
0
另一種方法是Jini。
0
有一整套解決方案稱爲IPC,即進程間通信。這些範圍從共享內存和管道到網絡通信和遠程過程框架。在Java中,你有各種各樣的解決方案。如果您已經熟悉網絡,則可以通過這種方式傳遞消息,否則您可能需要設置異步消息隊列或管道,您可能會發現共享內存容易出現錯誤,並且像JINI這樣的遠程過程太複雜而難以設置並保持。
0
另一個解決方案,雖然不是那麼簡單,但是是JMS。如果通信的本質主要是傳遞信息或小物體,這可能是有用的。
相關問題
- 1. 訪問其他進程中的元素
- 2. 訪問其他進程的菜單條
- 3. 訪問其他進程內存
- 4. 如何訪問Java中其他計算機進程的狀態?
- 5. 保護進程不被其他進程訪問
- 6. 線程並行於其他進程java
- 7. 訪問其他java類的片段
- 8. Android - 訪問其他類的對象(Java)
- 9. 訪問SharedPreference和其他Java類
- 10. 從其他類訪問Java Swing TextField
- 11. c#線程訪問其他線程
- 12. 如何 - Java線程訪問其他線程(SWING)
- 13. 訪問其他類
- 14. 該文件已被其他進程訪問WebClient.FileDownlOad安寧錯誤
- 15. 內核如何訪問其他進程的內存?
- 16. 德爾福:拒絕訪問其他進程的文件
- 17. 由python複製的文件不能被其他進程訪問
- 18. 如何訪問其他進程的內存?
- 19. 無法訪問已被其他進程使用的文件
- 20. C#不能訪問該文件,因爲它被其他進程
- 21. C#從其他線程訪問元素
- 22. Symfony1.4訪問其他應用程序
- 23. 訪問其他程序的內存
- 24. Spring RMI遠程訪問其他
- 25. 從其他線程訪問視圖(Android)
- 26. 從其他線程訪問HttpRuntime.Cache
- 27. Java進程對其他窗口進程產生優先
- 28. 從其他類訪問IBOutlet
- 29. SSRS報告訪問其他
- 30. 從XML訪問其他XML?