java 调用exe程序挂起

问题描述

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

java 调用exe程序挂起的相关文章

javascript- 不使用ActiveXObject,在js中调用exe程序,求帮忙

问题描述 不使用ActiveXObject,在js中调用exe程序,求帮忙 因为使用new ActiveXObject("wscript.shell"); 需要使用IE插件 解决方案 如果是windows操作系统,可以使用协议扩展 http://zhidao.baidu.com/link?url=A4QX1crr32EbPtuCtLLSnvf_oi_lxL8aAeUqjWaA_jcH8BqEBUXEVPdPEMaI_O-RUpeskn-onCwkW7IMrX0GRuFPodxWAR1l

调用exe-C#调用EXE程序,欢迎界面显示的问题,Winform

问题描述 C#调用EXE程序,欢迎界面显示的问题,Winform C#自己开发的程序,需要调用一个外部的EXE程序.该程序是Release版本,一个单独的程序,有自己的欢迎界面.我调用这个程序的时候,这个程序的欢迎界面的图片总是显示不出来,其他的能显示,比如登陆用户,密码的控件都能显示出来,但是就是欢迎界面的图片不显示,显示的是一个白的空图片. 代码如下所示; Process p; private void pictureBox3_Click(object sender, EventArgs e

java调用matlab程序

在实际Java编程中,我们可能想要使用matlab编写一些复杂的数值计算算法,然后导入我们的java项目中调用.这首先需要我们matlab的jdk版本和java项目的jdk版本对应一致.想查看matlabjdk版本,可以在matlab命令行中输入version -java来查看,会看到类似下面的内容: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode .下面我们来看看mat

Java调用windows程序

由于工作中要使用Java调用4U Wma Mp3 Converter命令行将vox格式转换成WMA格式,以方便在网页中试听,所以想到用java.lang.Runtime来处理这个问题.在使用过程中碰到了一些以前没有留意的问题,整理如下: 一 最简单的调用方式String cmd="WMAMP3Converter.exe";java.lang.Runtime.getRuntime().exec(cmd+" /""+filePath+"/"

asp.net使用process.start调用exe程序问题2

问题描述 netframework1.1使用process.start调用某控制台程序A.exe执行数据处理.1.WinXP下:进入IIS,把网站的执行权限,调整到"脚本与可执行文件",可顺序启动并执行A.exe2.WindowsServer200832位:无需特别设置(忘了是否做过特别设置,因现在手头上暂无此环境,故无法验证),即可顺序启动并执行A.exe3.WindowsServer2008R264位:可顺序启动A.exe(在任务管理器中可找到该程序),但该程序没有被执行.故进入I

java打包exe程序需要注意的几个地方

这两天使用java写了一个小程序.然后想使用exe4j给打包成一个exe的程序.出现了一个启动的异常,这里分享一下使用exe4j打包程序注意的事项,以免其他网友出错能够快速定位.如下: No JVM could be found on your system. Please define EXE4J_JAVA_HOME to point to an installed 32-bit JDK or JRE or download a JRE from www.java.com. 截图如下: 出现这

java调用c程序通信示例代码_java

复制代码 代码如下: //===============Client Struct================#pragma pack(push,4) #define LOG_SEND 0#define MSG_SEND 1#define EXIT_SEND 2#define BUFFER_MAX_SIZE 512#define HEADER_LEN  sizeof(Header)typedef struct HeaderStruct{ int OP;//OP : 0--> Login  1

JAVA调用C++程序,C++执行完毕后报错。。错误信息看不懂。求救

问题描述 程序功能是实现简单的googlemapjsp前台显示上传图片,c程序将图片分割,之后网页在刷新.错误位置:c程序执行完毕时报错//...successImagedisconstrutor//c程序分割完毕##AfatalerrorhasbeendetectedbytheJavaRuntimeEnvironment:##SIGSEGV(0xb)atpc=0x0017fea9,pid=4398,tid=2633743216##JREversion:6.0_20-b20#JavaVM:Ope

java-操作数据库的.exe程序,可以批量执行sql脚本文件

问题描述 操作数据库的.exe程序,可以批量执行sql脚本文件 求大神帮忙啊~用java可以做这个东西吗?完全没有思路啊,要求是可以操作局域网内的另一台电脑上的mysql数据库 解决方案 如果有访问权限的话,直接运行Runtime.getRuntime().exec("远程IP文件路径exe文件");如果没有,那可以先用java进行telnet连接到那台机器,然后调用exe程序,再不行就只能在远程机器上写webservice服务然后调用了. 解决方案二: 批量执行SQL脚本 解决方案三