如何在两个独立的应用程序中使用一个Java对象?

如何在两个独立的应用程序中使用一个Java对象?,java,Java,我有一个应用程序,它创建一个统计对象,并在执行过程中对其进行更新。存储在该对象中的数据例如是应用程序上次断开连接的日期、存储在数据库中的消息数等 我想另一个应用程序,例如,能够触发一些警报,如果一些数据超过一定的值。例如,如果数据库中没有存储数据超过5分钟,则发送电子邮件 我怎样才能做到这一点?我不知道如何在两个不同的应用程序中使用相同的Java对象。有什么不同的方法可以做到这一点,最好的选择是什么?Java不支持在两个实例之间共享同一个对象。但是,有许多方法可以在对象之间共享状态 其中一个解决

我有一个应用程序,它创建一个统计对象,并在执行过程中对其进行更新。存储在该对象中的数据例如是应用程序上次断开连接的日期、存储在数据库中的消息数等

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


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

Java不支持在两个实例之间共享同一个对象。但是,有许多方法可以在对象之间共享状态

其中一个解决方案是Hazelcast,它确实起到了作用。当jvm实例位于不同的机器上时,它也可以工作

当jvm在同一台机器上时,您可以(反)序列化共享内存中的对象。这里描述了这一点:


但是,我很可能建议您使用hazelcast,因为它很简单。

如果这些应用程序确实不同,那么您需要的是“进程间I/O”。有很多方法可以做到这一点,主要是通过
java.lang.Process
中的各种API。或者,你知道,只需要使用一个文件来存储内容,你的需求并不要求你在两个应用程序中访问同一个对象。访问对象的数据足以实现您的目标。远程访问某些数据的方法有几十种(例如,在数据库中使用时间戳存储数据,在消息总线上发布数据,通过webservices访问数据,将其公开为JMX,转储一个使用时间戳命名的文件,…仅供初学者使用)。。。这些适合你吗?