私はJavaが初めてです。コマンドを使いたい
"ps -e > /home/root/workspace/MyProject/ProcessList.txt"
runTime.exec(); を使用
Web を検索すると、runTime.exec() がパイプまたはリダイレクトをサポートしていないことがわかりました。Java コードでこのコマンドを実行する方法を教えてください。正確な答えを教えてください。
私はJavaが初めてです。コマンドを使いたい
"ps -e > /home/root/workspace/MyProject/ProcessList.txt"
runTime.exec(); を使用
Web を検索すると、runTime.exec() がパイプまたはリダイレクトをサポートしていないことがわかりました。Java コードでこのコマンドを実行する方法を教えてください。正確な答えを教えてください。
パイプとリダイレクトは、シェルによって提供される機能です。簡単な (そして汚い) 解決策は、シェル内でコマンドを生成することです: "/bin/sh -c 'ps -e > /home/root/workspace/MyProject/ProcessList.txt'"
.
StringTokenizer
編集:引用符で囲まれた文字列ではデフォルトが機能しないことを忘れていました。引数を文字列の配列として提供します。
String[] args = {
"/bin/sh",
"-c",
"ps -e > /home/root/workspace/MyProject/ProcessList.txt"
};
java.lang.Runtime.getRuntime(args);
この質問を見ることができます: Java の入力および出力ストリーム パイプ
それ以外の場合は、bourne シェル ( sh
) をサポートするプラットフォームを使用していることがわかっている場合は、それをコマンドに追加して、そのシェルで元のコマンドを実行できます。
"sh -c 'ps -e > /home/root/workspace/MyProject/ProcessList.txt'"