package lang;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;


/**
 *  execの形式には各種あるので使いやすいものを使うとよい.
 *  execをすれば、プログラムが起動できるが、コンソール入力・表示はされない.
 *  それをするには、execの結果戻されるProcessから標準入出力とエラー出力を取得し、
 *  それらを自ロセスの入出力に接続すればよい.
 *  しかし、それぞれが非同期に動作する場合を考えると、
 *  これらの入出力を別のスレッドで操作する必要があり、かなり面倒.
 *  なお、Swingプログラムのような場合、これら入出力は不要となるので、このような注意は不要である.
 *  ここでは、単に標準出力を取得してコンソールに表示する例を示す.
 */
class Runtime02 {
  public static void main(String[] args) {
    try {
      Runtime rt = Runtime.getRuntime();
      //
      // 注意、子プロセスの出力を読む必要があるので、getInputStreamを使用する
      Process p = rt.exec("cmd /C dir");
      InputStream is = p.getInputStream();
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      for (;;) {
        String line = br.readLine();
        if (line == null) { break; }
        System.out.println(line);
      }
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }
}

==
・目次 - Java言語プログラミング入門
  http://blogs.yahoo.co.jp/artery2020/39975776.html
・目次 - ビジネスパーソンの常識と非常識
  http://blogs.yahoo.co.jp/artery2020/39728331.html
・目次 - 論理・発想・思考についての考察と鍛え方
  http://blogs.yahoo.co.jp/artery2020/39657784.html
==