0

Javaでコンピュータ全体の実際のシングルトンを作成する方法は?

Java で記述されたコンソール アプリがあります。アプリケーションが 2 回目に実行された場合、メイン アプリケーションが既に実行されている (およびジョブを実行している) ことを認識させたいと考えています。2 回目の実行では、ユーザーがデータ (ジョブ) をクエリできるようになります。ファイルを作成してそこにすべてを書き込むことができることはわかっていますが、そうすると、コンピューターのリセットなどもサポートする必要があります。

それを行うより良い方法はありますか?

要約する:

  • アプリを起動します。ジョブがあり、それらを必要な間隔で実行します。
  • もう一度アプリを起動します。ジョブが既に実行されているというメッセージが表示され、最初のアプリからデータを照会できます。
  • 3回目にアプリを起動すると、2回目と同じように動作します。
  • 最初のインスタンスを停止して新しいインスタンスを開始すると、最初のインスタンスのように機能します。

PSこの質問は複数回尋ねられたに違いないことは知っていますが、GoogleとStackOverflowの検索では、Singleton Design Patternに関連するリンクのみが表示されます。

4

2 に答える 2

3

ここにあなたが望むことをするリンクがあります。

これは、起動時にソケットにバインドし、起動時に何かがバインドされている場合にメッセージを送信するコードの例を提供します

これを使用して、プロセス間で通信できます。

于 2013-02-23T15:58:47.070 に答える
2

コメントで@PaulTomblinが述べたように、おそらくサーバーソケットを特定のポートにバインドする必要があります。これには 2 つの目的があります。ポートが現在バインドされていない場合、実行中のプロセスがメイン インスタンスになります。ポートがすでにバインドされている場合、実行中のプロセスはクライアントになり、代わりにポートに接続してプライマリ インスタンスと通信します。

于 2013-02-23T15:56:30.150 に答える