0

.NET アプリから Java アプリにシグナルを渡す必要があります。データは必要ありません。信号自体で十分です。

私の頭に浮かぶ最も簡単な方法は、次のような名前付き同期オブジェクトを使用することです。

  1. .NET アプリは、特定の名前付き同期オブジェクト A を作成します。
  2. Java アプリは、特定の名前付き同期オブジェクト A を作成します。名前は (1) と同じです。
  3. Java アプリには、オブジェクトがシグナル状態になるのを待っているスレッドがあります。
  4. .NET アプリがオブジェクトに信号を送ります。
  5. Java アプリ スレッドが起動し、シグナルの受信に基づいて動作します。

少なくとも、Java で名前付き同期オブジェクトを作成する方法を知っていれば、これを行う方法です。

しかし、Javaには何もないように見えますが、これは信じがたいことです。Windows だけが同期オブジェクトに名前を付けているということですか?

だから、私の質問はこれです - Java 以外のアプリから Windows 上の Java アプリに単純なシグナル (データなし) を渡すにはどうすればよいですか? 両方のプロセスが同じホストで実行されます。

編集

動機 - ヘッドレス Java プロセスに信号を送って、できるだけ早く正常に終了させたいと考えています。

4

3 に答える 3

3

プログラム間にソケット接続を作成し、特定のパターンを送受信することで信号を検出できます

于 2012-12-23T10:24:50.800 に答える
0

神のために、私はC ++ / C#プロセスからJavaプロセスへの単一の1ビット信号が必要であり、それを行う簡単な方法はありません。信じられない。

それを忘れて、私はただファイルシステムを使います。C ++ / C#コードは、よく知られた場所に空のファイルを作成します。これは、Javaコードが毎秒ポーリングします。

フィニート、話の終わり。

于 2012-12-24T11:53:37.610 に答える
0

ここから ICE Framework をダウンロードして学習できます。ICE Framework は、ローカル システムまたはネットワーク上のプロセス間の通信のためのクロス フレームワークです。

Ice フレームワークをダウンロード

于 2012-12-24T04:16:53.997 に答える