0

私はJavaが初めてです。コマンドを使いたい

"ps -e > /home/root/workspace/MyProject/ProcessList.txt" 

runTime.exec(); を使用

Web を検索すると、runTime.exec() がパイプまたはリダイレクトをサポートしていないことがわかりました。Java コードでこのコマンドを実行する方法を教えてください。正確な答えを教えてください。

4

2 に答える 2

1

パイプとリダイレクトは、シェルによって提供される機能です。簡単な (そして汚い) 解決策は、シェル内でコマンドを生成することです: "/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);
于 2012-12-02T16:35:30.050 に答える
0

この質問を見ることができます: Java の入力および出力ストリーム パイプ

それ以外の場合は、bourne シェル ( sh) をサポートするプラットフォームを使用していることがわかっている場合は、それをコマンドに追加して、そのシェルで元のコマンドを実行できます。

"sh -c 'ps -e > /home/root/workspace/MyProject/ProcessList.txt'"

于 2012-12-02T16:36:55.097 に答える