ホームページ  >  記事  >  Java  >  Java からリダイレクトとパイプを使用して Linux シェル コマンドを実行するにはどうすればよいですか?

Java からリダイレクトとパイプを使用して Linux シェル コマンドを実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-23 13:34:09818ブラウズ

How Can I Execute Linux Shell Commands with Redirections and Pipes from Java?

Java からの Linux シェル コマンドの呼び出し: 詳細な説明

Java 内から Linux コマンドを実行しようとする場合、そのコマンドを理解することが重要です。シェル固有のコマンドの微妙な違いと Java ランタイムとの互換性環境.

課題: リダイレクトとパイプを使用したコマンドの実行

Process p = Runtime.getRuntime().exec("shell command") を使用した最初の試行は失敗します。リダイレクトまたはパイプを処理します。これは、exec() がシステム シェルと直接統合されていないためです。

解決策: シェル「プロキシ」を利用する

リダイレクトとパイプを使用してシェル コマンドを実行するには、 「シェル プロキシ」アプローチを利用できます。これには、中間ステップとして使用するシェルの指定が含まれます。

実装:

exec() を次のものに置き換えます:

Process p = Runtime.getRuntime().exec(new String[]{"csh", "-c", "cat /home/narek/pk.txt"});

Inこの例では、「csh」はコマンド「cat」を解釈するために使用されるシェル プロキシです。 /home/narek/pk.txt".

追加メモ:

csh の使用で問題が発生した場合は、代わりに bash をシェル プロキシとして使用することを検討してください:

Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "ls /home/XXX"});

以上がJava からリダイレクトとパイプを使用して Linux シェル コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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