Java 程序调用 exe

系统 1276 0

版权声明:转载时请务必保留以下作者信息和链接
作者:陈维( chenweionline@hotmail.com )作者的网站: http://www.chenwei.mobi

我们的 Java 程序中有时候需要调用程序自身以外的一些程序,来完成某些计算。那么这个时候可以使用 ProcessBuilder.start() 或 Runtime.exec方法,并返回 Process 子类的一个实例,该实例可用来控制进程并获取相关信息。

我用调用 Windows 系统的计算器举个例子:

try ... {
// Windows系统的计算器程序
Stringcmd = " calc.exe " ;

// 创建一个本机进程
Processp = Runtime.getRuntime().exec(cmd);

// 等待Process执行完毕再继续向下运行
p.waitFor();

}
catch (IOExceptionex) ... {
ex.printStackTrace();
}
catch (InterruptedExceptionex) ... {
ex.printStackTrace();
}


System.out.println(
" transferfinish " );

如果需要以异步方式调用的话,可以注释掉 p. waitFor (); 。

Process 没有自己的终端或控制台。它的所有标准 io(即 stdin,stdout,stderr)操作都将通过三个流 (getOutputStream(),getInputStream(),getErrorStream()) 重定向到父进程。父进程使用这些流来提供到子进程的输入和获得从子进程的输出。

那么我们还可以通过对流的操作取得 Process 的输出:

Processp = Runtime.getRuntime().exec(cmd);

InputStreamin
= p.getInputStream();

int c;
while ((c = in.read()) != - 1 ) ... {
System.out.print(c);
}

in.close();

Java 程序调用 exe


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论