0

Java から複数のコマンド シェルを実行しようとしています。私はそれを行うことができます(そして、PrintWriterを使用してコンソールで出力を取得します)。ただし、各コマンドの出力を個別の文字列で取得できるようにしたいと考えています。それは可能ですか?

コードの一部を次に示します。

 File wd = new File("/bin");
    Process proc = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);
    out.println("cd ..");

    out.println("ls");
    System.out.println("moving to /var directory");
    out.println("cd /var/");
    out.println("ls");
    //get output of ls command in string variable
    out.println("cd ..");
    out.println("cd /etc/");
    out.println("ls -a");
    out.println("ps");

    out.println("exit");
    try {
        String line;
        while ((line = in.readLine()) != null) {
            System.out.println(line);
        }
        proc.waitFor();
        in.close();
        out.close();
        proc.destroy();
    }
    catch (Exception e) {
         e.printStackTrace();
    }
4

1 に答える 1

0

次のようなセクションを入れてみましたか

StringBuilder builder = new StringBuilder();
String line = null;
while ((line = in.readLine()) != null) {
    builder.append(line).append("\n");
}
String commandOutput = builder.toString();

各コマンドの後?それは大まかにあなたが達成しようとしていることですか?

于 2012-07-14T18:35:53.640 に答える