在java中怎样知道子进程什么时候结束
我在java中用Runntime.exec();开了一个子进程来处理数据
但不知道什么时候该子进程结束
请问高手怎么得到它什么时候运行结束
谢谢

解决方案 »

  1.   

    子进程是子线程么?如果是,那么在子线程的run()方法中最后一行加入一行输出
    System.out.println("Thread ending."); //如果需要还可以输出时间标志
    就可以知道它什么时候停止运行的了。
      

  2.   

    我运行的子进程是一个exe程序
    我想等那个exe完成之后再通知我
      

  3.   


    iambic() 
    启一个线程,线程调用进程,等待进程结束。进程结束后线程使用合适的方法通知主线程。
    -----------嗯,这种方法好
    其实就是创建一个新的线程
    在线程的run()方法里调用你需要的那个exe程序
    然后在紧跟着那个调用语句的后面写一个
    System.out.print("exe ending");
    语句在main()函数里
    用该线程的start()启动这个线程
    这样当exe结束执行的时候,你就能在控制台看到这行语句输出了。
      

  4.   

    你如果紧跟后的写个system.out的话他会马上执行
    但它不是等那个子进程运行完后再执行而是马上执行
    ProcessBuilder bu = new ProcessBuilder();
    bu.command( command);
    Process pro = bu.start();
    我想要通过pro来得到子进程什么时候结束
      

  5.   

    process.waitFor(); //等待process执行完毕再继续向下运行
      

  6.   

    1.主进程启动
    2.主进程启动子进程
    3.子进程启动
    4.子进程建立一个socket server监听。
    5.主进程连接子进程的socket server监听端口。
    6.....(在这里子进程可以不断的发送自己还或者的信息)
    7.子进程在socket连接中发送自己已经停止的信息。
    8.主进程可以收到子进程停止的信息。(或者发现连不上子进程的端口了,也可以判断为子进程中止。)注:利用这种方法还可以用主进程来控制子进程的启动和关闭.