问题描述
- java 调用exe程序挂起
-
最近在做一个java工具,java多线程执行bat文件,
每个bat文件又会调用两个exe文件(a.exe | b.exe
)。
每一个线程单独执行一个bat文件。线程执行bat文件。
因为数据量很大,活执行很多次bat文件(几万次吧)。
当执行到某一个bat的时候,调用的某一个exe好像会阻塞,
使全部的exe都挂起(进程存在,不占用cpu,好像死了一样)。
如果结束java程序的话,挂起的exe会继续执行完。在网上查了,说在调用完bat文件,等在执行结果waitFor之前处理掉错误流和输出流,
这样做了还不会挂起。请问大神,问题会出在哪里,怎么解决。。。万分感谢!!!
解决方案
版权声明:转载时请务必保留以下作者信息和链接作者:陈维(chenweionline@hotmail.com)作者的网站:http://www.chenwei.mobi我们的 Java 程序中有时候需要调用程序自身以外的一些程序,来完成某些计算。那么这个时候可以使用 ProcessBuilder.start() 或 Runtime.exec方法,并返回 Process 子类的一个实例,该实例可用......
答案就在这里:Java 程序调用 exe
解决方案二:
你这启动几万次exe有点没有必要啊,为什么不把一些信息放入队列,然后java中开几个线程专门调用a.exe和b.exe来处理。
你这个问题还要先分析到底出现在什么地方,但是这么几万次反复启动很容易导致系统资源耗尽,或者exe一旦死锁就会出问题
时间: 2024-11-02 03:44:58