ホームページ  >  記事  >  Java  >  ランタイムの exec() メソッドによるリダイレクト出力エラーを解決するにはどうすればよいですか?

ランタイムの exec() メソッドによるリダイレクト出力エラーを解決するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 08:26:02630ブラウズ

How to Resolve Redirection Output Failure with Runtime's exec() Method?

ランタイムの exec() メソッドによるリダイレクト出力エラーのトラブルシューティング

Java の Runtime.exec() メソッドを使用してコマンドを実行する場合、出力をリダイレクトするファイルに変更すると問題が発生する可能性があります。具体的には、生成されたファイルが作成されず、ストリームが正しく転送されない可能性があります。

この問題に対処するには、ProcessBuilder を利用してリダイレクトを効果的に実行します。次のコード スニペットは、stdout と stderr の両方をファイルにリダイレクトする方法を示しています。

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

ProcessBuilder を使用すると、コマンドの出力を指定したファイルにリダイレクトでき、出力が確実にキャプチャされるようになります。処理中です。

以上がランタイムの exec() メソッドによるリダイレクト出力エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。