2011-07-27 46 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

相关问题