0

サードパーティの開発者が提供する JAVA-Jar-File があります。File は STDIN から読み取り、STDOUT に書き込みます。

代わりにログ ファイルに書き込むように JAR ファイルを構成することができました。

しかし、input-source を STDIN から名前付きパイプに書き直す必要もあるので、独自のアプリケーションを介して Java プロセスにコマンドを送信できます。

私はすでにパイプライン(bash)から読み取るためにこの2つのことを試しました:

cat < pipeline_name | java -jar external_application.jar

これは、最初のコマンドではうまく機能します。最初の入力行を受け取った後、「cat」は終了し、その後コマンドを送信できません。

私の他の試み:

tail -f pipeline_name | java -jar external_application.jar

これはうまくいきます。すべてのコマンドは、JAVA アプリケーションに渡されます。しかし: java-application が終了している場合、tail -f は以前のように実行されます。

JAVA プロセスが終了している場合にパイプからの読み取りを停止するソリューションが必要です。

どうもありがとう

4

1 に答える 1

1

bash リダイレクトを使用し、チートシートを用意します

java -jar external_application.jar < pipeline_name

< は、Java プロセスがパイプライン名から stdin を読み取ることを意味します。

于 2013-01-18T09:17:59.693 に答える