如何用Java比较安全的停止一个Windows由Java应用程序调用的外部程序进程
职业培训
培训职业
2024-12-02
办法肯定有啦,最武断的办法就是直接调用Process类的destroy方法,该子进程就被杀死。当然这是最底层的办法,使用中还需要包装,比如用循环和sleep来计时,超时了才调用destroy。也可以根据实际情况,做成异步调用(让这个进程在单独的线程中运行),这样你的主程序就不会被挂
办法肯定有啦,最武断的办法就是直接调用Process类的destroy方法,该子进程就被杀死。当然这是最底层的办法,使用中还需要包装,比如用循环和sleep来计时,超时了才调用destroy。也可以根据实际情况,做成异步调用(让这个进程在单独的线程中运行),这样你的主程序就不会被挂起了。
以上这些包装,其实在apache commons项目里已经有这样的库了,叫commons-exec,用它最方便,毕竟包装它们还是苦差事(涉及到多线程,新开一个进程,Java中需要再开三个线程来处理进程的三个数据流,分别是标准输入,标准输出和错误输出)。commons-exec库提供了监视狗Watchdog来设监视进程的执行超时,同时也还实现了同步和异步功能。建议你用它,如果只求简单快速解决问题,自己简单地使用循环和Thread.sleep(1000)来计时,超时就destroy也行。
标签
版权声明:本文由哟品培原创或收集发布,如需转载请注明出处。
上一篇:资产负债表日是什么时候
下一篇:思修如何正确认识和处理人生矛盾
猜你喜欢
其他标签