2010/01/03

javaで外部プログラムを呼ぶ

ProcessBuilderで可能.
しかしリダイレクトができないらしいので,
シェルスクリプトにいろいろ書いて,それを呼び出すしかなさそう.


      String command = "my.sh";
      ProcessBuilder pb = new ProcessBuilder(command.split(" "));
      Process p = pb.start();
      BufferedReader br;
      br = new BufferedReader(new InputStreamReader(p.getInputStream()));
      String line;
      while ((line = br.readLine()) != null) {
        System.out.println(line);
      }
      br = new BufferedReader(new InputStreamReader(p.getErrorStream()));
      while ((line = br.readLine()) != null) {
        System.err.println(line);
      }
    } catch (IOException ex) {
      ex.printStackTrace();
    }

0 件のコメント: