2017-04-13 55 views
-1

我有一个应用程序创建一个统计对象,并通过执行更新它。存储在该对象中的数据是例如应用程序遇到最后一次断开连接的日期,存储在数据库中的消息的数量,等等......如何在两个独立的应用程序中使用一个Java对象?

我想要另一个应用程序,例如能够触发一些警报if一些数据超过了一定的数值​​。例如,如果数据库中没有数据存储超过5分钟,则发送电子邮件。

我该如何做到这一点?我不知道如何在两个不同的应用程序中使用相同的Java对象。有什么不同的方法来做到这一点,什么是最好的选择?

+0

http://stackoverflow.com/questions/1680898/communication-between-two-separate-java-desktop-applications –

+0

可能的副本如果这些确实是不同的应用程序,那么您要查找的是“进程间I/O”。有很多方法可以做到,主要是通过'java.lang.Process'中的各种API。或者,您知道,只是使用文件来存储内容。 –

+0

您的要求并不要求您在两个应用程序中访问同一个对象。访问对象的数据足以实现您的目标。有几十种方法可以远程访问某些数据(例如,将数据存储在数据库中,将其发布到消息总线上,通过web服务访问它,将其公开为JMX,转储一个以时间戳命名的文件,...只为初学者)......这些都适合你吗? – GPI

回答

0

Java不支持在两个实例之间共享同一个对象。然而,在对象之间共享状态有很多方法。

一个解决方案是Hazelcast,当然也有诀窍。它也适用于jvm实例在不同的机器上。

当jvm位于同一台机器上时,您可以(共)地将您的对象序列化到共享内存中。这里描述: Shared Memory between two JVMs

但是,我最有可能会建议你使用hazelcast,因为它很简单。

相关问题