是这样的:我用Runtime.exec("javac My.java"),Runtime.exec("java My")这样的形式来自动编译,执行另外一个java程序.我是想把子进程运行过程中原来输出到控制台的信息输出到界面(比如一个TextArea),这样就能对子进程的运行比较清楚,请问如何做?

解决方案 »

  1.   

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;public class test {
        public static void main(String[] args) throws IOException {
            String cmd="cmd.exe /c  dir";
            Runtime rt = Runtime.getRuntime();
            Process proc = rt.exec(cmd);
            InputStreamReader read=new InputStreamReader(proc.getInputStream());
            BufferedReader br = new BufferedReader(read);
            String line = null;
            while ((line = br.readLine()) != null)
                System.out.println(line);
        }
    }
      

  2.   

    多谢楼上,明白了一半.  "cmd.exe /c  dir"是什么意思?我启动子进程时直接是用
    cmd="java Myclass" ;
    Process proc = rt.exec(cmd);
    有什么不同吗?
      

  3.   

    如果我把子进程的标准输出输出到一个文件里,父进程再去读出来放到JTextArea里,父子进程共同操作一个文件,应该如何同步?
      

  4.   

    写到一个bat批处理文件中
    多好呀
    如果我把子进程的标准输出输出到一个文件里,父进程再去读出来放到JTextArea里,父子进程共同操作一个文件,应该如何同步?开两个线程
    用join(a);
    等待a结束
      

  5.   

    如果我把子进程的标准输出输出到一个文件里,父进程再去读出来放到JTextArea里,父子进程共同操作一个文件,应该如何同步?理论上是读写管道问题,
    但好像java只有多线程,没有多进程。