Java のランタイム Exec() メソッドが出力をリダイレクトしないのはなぜですか?

Susan Sarandon
リリース: 2024-10-24 08:34:29
オリジナル
710 人が閲覧しました

Why is Java's Runtime Exec() Method Not Redirecting Output?

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 サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!