0

Java から呼び出して実行する必要がある R スクリプトがあります。このコードを試しました: Runtime.getRuntime().exec("Rscript pathTo/R/myScript.R"). Windows コマンドから実行すると正常に動作しましたが、Eclipse でこのコードを使用して Java クラスを実行しても何も起こりません。コンソールには、エラーもログも何も表示されません。Java からこのスクリプトを実行する方法を教えてもらえますか?

4

1 に答える 1

1

デフォルトでは、ProcessJava から起動された には、標準入力、標準出力、および標準エラーがパイプにリダイレクトされ、Java 内からアクセスできます。標準出力パイプとエラー パイプから読み取り、テキストを Java アプリケーションの出力に自分で転送しない限り、出力は表示されません。さらに、パイプの内部バッファーがいっぱいになると、ルートがデータを書き込むのを待っている間に子アプリケーションがブロックされることさえあります。したがって、プロセスはおそらくハングし、終了することはありません。

Java 7 以降、 を使用して、子プロセスに Java アプリケーションから I/O チャネルを継承させることができますProcessBuilder.inheritIO。これにより、これらのストリームから自分で読み取る手間が省けます。

于 2012-08-09T19:08:33.080 に答える