2011-07-27 68 views
3

我正在運行兩個不同的java應用程序,並且都運行不同的JVM。 其實我需要在這些應用程序之間傳遞一些數據, 我已經在這裏使用共享文件的方法,但尋找更好的方法。多個Java應用程序可以在同一個VM下運行嗎?

所以我在想,如果我們能夠在同一個JVM下運行這些應用程序,那麼我們可以在這些應用程序之間傳遞數據。 我不知道如何在同一個JVM下運行的應用程序之間傳遞數據。

+0

如果兩個應用程序被設計爲運行在他們自己的JVM中,將它們填充到一個單獨的JVM中會遇到很多種問題。什麼RMI或套接字? – Dmitri

回答

0

如果您的應用程序沒有固有的衝突(不兼容的JVM參數,衝突的單例等),它可能是可行的。您可能需要以某種方式修改main()方法;也許有你的2個應用程序運行在自己的線程。

然而,不知道額外的細節,很難判斷事情。

1

它們在使用應用程序服務器時有效。應用程序服務器通常在自己的線程中運行應用程序,而不是在每個應用程序的JVM上運行。 如果你想實現類似的解決方案,你可以編寫一個原始服務器,在特定的線程中調用你的應用程序的主要方法。

請注意,這也可能會讓您感到頭痛。例如,如果一個線程以System.exit(0)退出應用程序,則所有線程都將被關閉。

2

您可以通過Socket實現您的應用程序相互接觸。

+0

確實如此,如果他可以在單個JVM下運行,它可以節省大量的空間並允許直接的方法調用。 – seand

+0

@seand:由於他目前使用共享文件,轉換爲套接字可能比合並應用程序更容易。 – Dmitri

相關問題