使用Java执行dos命令

List list = new Arralist();
list.add("ipconfig");
ProcessBuilder builder = new ProcessBuilder(); //创建系统进程 builder.command(list);
Process process = builder.start();//启动进程会返回dos页面的对象
prosess.destory();用dos页面的对象调用销毁方法,就会停止执行的指令
ProcessBuilder 的具体使用看别的帖子吧,我用ProcessBuilder 启动线程之后想关闭线程找了挺久,主要记一下进程可以这么关闭.

补充一下,这样执行可能会出问题,在调用destory方法时关不掉进程,原因是在执行一条dos命令时,会有输出内容

 

 

 

 

 

 当我们用Java执行dos命令的时候没有控制台,输出内容是发到两个带缓冲区的流里面的,process .getInputSteam()和process.getErrorStream,这两个流的缓冲区有上限,当缓冲区被填满时,process。destory()方法就失去作用了。

如果要解决这个问题需要设置两个线程一直读取这两个流中内容就可以正常使用了

posted @ 2020-03-18 20:13  没事睡一觉  阅读(603)  评论(0编辑  收藏  举报