ホームページ >Java >&#&チュートリアル >Java のランタイム Exec() メソッドが出力をリダイレクトしないのはなぜですか?
Java の Runtime Exec() メソッドが出力をリダイレクトしない
Runtime.getRuntime() で実行されたスクリプトの出力をリダイレクトしようとしたとき。 exec() を実行すると、リダイレクトが効果がなく、出力ファイルが生成されないという問題が発生する可能性があります。
この問題を解決するには、リダイレクトに ProcessBuilder を使用する必要があります。次のコード スニペットは、正しいアプローチを示しています。
<code class="java">ProcessBuilder builder = new ProcessBuilder("sh", "somescript.sh"); builder.redirectOutput(new File("out.txt")); builder.redirectError(new File("out.txt")); Process p = builder.start(); // may throw IOException</code>
このアプローチでは、スクリプトからの標準出力とエラー出力の両方が指定されたファイルにリダイレクトされ、スクリプトの出力が正常にキャプチャされることが保証されます。
以上がJava のランタイム Exec() メソッドが出力をリダイレクトしないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。