1

情報を生成して画面に出力する Java アプリケーションがあります。問題は、この情報を取得して別の Java アプリケーションに転送することです。このアプリケーションには独自のメインがあります。一般的すぎるように思えますが、このケーススタディをより適切に説明する方法がわからない

4

5 に答える 5

5

あなたの質問一般的なものですが、ここにいくつかの指針があります(最も低レベルから最も包括的なものまで):

  • コンソールの

    $ java -jar first-app.jar | java -jar second-app.jar
    

    このシナリオでは、 からのすべてのコンソール出力first-appが の標準入力にリダイレクトされますsecond-app。これには、両方のアプリケーションが同じマシンで動作する必要があります。以下のすべてのソリューションでは、プロデューサーとコンシューマーをネットワーク全体に分散できます。

  • - Java はそれらをネイティブかつ適切にサポートします

  • のようなバイナリ プロトコルを介した Java 間通信の事実上の標準
  • - 、またはベースのプロトコル
  • いわゆるメッセージ ブローカーを介して非同期的にメッセージを送信する
  • 共有データベース/ファイル/メモリ、例:
于 2012-07-07T11:06:17.740 に答える
1

filesを使用して、必要なデータをファイルに保持し、他のアプリケーションがそのデータをファイルから読み取ることができます。これは最も簡単な解決策です。より複雑なシナリオでは、ソケットを使用できます

于 2012-07-07T11:07:25.173 に答える
0

ソケットを使用してそれを行うことができます (これは、2 つのプロセスが相互に通信できる方法の 1 つです)。ここでサンプルを見つけることができます: http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html

于 2012-07-07T11:06:39.843 に答える
0

IPC を探しているように思えます。プロセス間通信。

他にもオプションがありますが、Java RMI (リモート メソッド呼び出し) で実行でき、低レベルのソケット実装が隠されています: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html

于 2012-07-07T11:06:49.420 に答える
0

2 番目のプログラムのソースがある場合は、最初のプログラムの出力を 2 番目のプログラムにリダイレクトするだけです: http://en.wikipedia.org/wiki/Redirection_(computing)

于 2012-07-07T11:08:24.827 に答える