これは、Java で使用可能な RMI、RMI-IIOP、または CORBA 機能を使用して簡単に実行できます。上記のテクノロジーにより、単一のマシン(サーバー)でオブジェクトの単一のインスタンスを作成し、それをリモートインターフェイスとして他のコンピューター(ネットワークが必要だと言います)にエクスポートできます。他のホストでは、「実際の」インスタンスが実装するのと同じインターフェースを持つスタブ クラスがあり、その上でメソッドを呼び出すことができます。これらの呼び出しは、サーバントの単一インスタンスで最後にリモートで呼び出されます。おそらく、これはまさにあなたが求めているものです。
より新しい、より興味深いアプローチから、Google Protocol Buffers は注目に値するもののように見えますが、Protocol Buffers を使用したカスタム コードがさらに必要になります。Web サービスはインターフェイスのエクスポートも許可し、ファイアウォールを通過するのにより適しています (ここにリストされている他のアプローチは、必要に応じて構成できる独自のサーバー間で通信するのにより適しています)。
特定のオペレーティング システムでプログラムのインスタンスを 1 つだけ実行する必要がある場合は、この質問で説明されているように実行できます。プログラムが固定ポートでリッスンしている場合、ポートが既に使用されているため、2 番目のインスタンスはおそらく適切に起動しません。必要なのは、靴下をバインドして終了しようとしたときに例外をキャッチすることだけです。