Process   process   =   Runtime.getRuntime().exec(cmd); 
我使用上面的语句来启动一个外部的已打好包的可执行jar包,请问怎么才能知道该程序已经正常启动,程序中是否需要添加什么代码。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xuehan1983】截止到2008-06-30 13:04:05的历史汇总数据(不包括此帖):
    发帖数:23                 发帖分:790                
    结贴数:22                 结贴分:770                
    未结数:1                  未结分:20                 
    结贴率:95.65 %            结分率:97.47 %            
    值得尊敬
      

  2.   

    可以读取他启动信息例如:
     
     Process  p  =  Runtime.getRuntime().exec(cmdline);  
     BufferedReader  input  =  new  BufferedReader(new  InputStreamReader(p.getInputStream()));  
     while  ((line  =  input.readLine())  !=  null)  {  
         System.out.println(line); //可以在这里读取他的启动信息,然后判断是否正常启动 
     }  
     input.close();  
      

  3.   

    正如上面说的可以获取启动信息来判断是否正常启动,
    也可以获取系统活动进程列表是否包含该进程来判断是否正常启动,后者是用dos命令的调用。
      

  4.   

    你可以用Runtime.getRuntime().exec(cmd); 去启动一个bat文件,命令行窗口可以打印出来信息!
      

  5.   

    正常启动判断:如果 exec 创建 Process 对象过程中不抛异常,应该说明进程已经正常创建了。
    监控进程结束的方法:为每个启动的进程开一个线程,然后在线程内调用 Process.waitFor() 方法,在进程结束前,你开的线程会一致等待 waitFor() 方法返回,再为每个进程设置一个标志变量,初值表示进程正在运行,当 waitFor() 方法返回后再改变此标志变量的值,这样就可以通过这个标志变量来判断进程的状态了。