2016-03-31 6 views
0

clojure.java.shell/shを使用すると、シェルコマンドを実行することができます。呼び出されたプロセスが終了すると、その関数は終了コード、std-outおよびstd-err文字列を含むマップを返します。clojure:プロセスを非同期的に起動する

スポーンされたプロセスのstdout/-errを開始した瞬間から、どのように取り込むことができますか?そして:どのようにしてクロージャープログラム/ replの中からプロセスを終了できますか?

答えて

1

私が知る限り、clojure.java.shell/shではできません。あなたはまた、java.lang.ProcessBuilder、あなたがprocess's input streamまたはa method to terminate itへのフルアクセス権を持っているjava.lang.ProcessをDIYすることができます(右後の出力を得ることがなど開始)

features you ask forを提供Raynes/conchを見てかかることがあります。

+0

これは今のところ唯一の方法です。まだこのAPI(conch)で苦労しています。私はそれを働かせない。あなたは多分最小の例を持っていますか?conchかjava native? –

+0

[ProcessBuilderとプロセスの例を含むチュートリアルがいくつかあります](https://examples.javacodegeeks.com/core-java/lang/processbuilder/java-lang-processbuilder-example/)、読み込みプロセスの標準出力別のスレッドから。 Clojureに簡単に適応させることができます。 –

関連する問題