2017-04-13 3 views
-1

統計オブジェクトを作成し、実行によって更新するアプリケーションがあります。そのオブジェクトに格納されているデータは、例えば、アプリケーションが最後に切断した日付、DBに格納されたメッセージの数などです。1つのJavaオブジェクトを2つの別々のアプリケーションで使用するにはどうすればよいですか?

私は、いくつかのデータはある値を超えています。 5分以上DBにデータが保存されていない場合は、電子メールを送信するなど。

どうすれば実現できますか? 2つの異なるアプリケーションで同じJavaオブジェクトを使用する方法がわかりません。それを行うためのさまざまな方法は何ですか、そして最良の選択肢は何ですか?

+0

可能性のある複製http://stackoverflow.com/questions/1680898/communication-between-two-separate-java-desktop-applications –

+0

それらが本当に異なるアプリケーションである場合、あなたが探しているのは「プロセス間I/O "と表示されます。主に 'java.lang.Process'のさまざまなAPIを使って、これを行うにはいくつかの方法があります。または、あなたが知っているのは、ファイルを格納するためにファイルを使用することだけです。 –

+0

要件によって、2つのアプリケーションで同じオブジェクトにアクセスする必要はありません。目標を達成するには、オブジェクトのデータにアクセスするだけで十分です。そして、何らかのデータに遠隔からアクセスする方法は数多くあります(例えば、データベースにタイムスタンプを付けて保存し、メッセージバスに公開し、Webサービス経由でアクセスし、JMXとして公開し、タイムスタンプ付きのファイルをダンプします。初心者のために)...これらのいずれかがあなたに合っていますか? – GPI

答えて

0

Javaは、2つのインスタンス間で同じオブジェクトの共有をサポートしていません。しかし、オブジェクト間で状態を共有する方法はたくさんあります。

1つの解決策はHazelcastであり、確かにそのトリックです。また、jvmインスタンスが別のマシンにある場合にも機能します。

jvmが同じマシン上にあるときは、あなたのオブジェクトを共有メモリに直列化することができます。これはここに記述されています: Shared Memory between two JVMs

しかし、私はおそらく、簡単なのでヘーゼルキャストを使用することをお勧めします。

関連する問題