星空网 > 软件开发 > Java

使用java传参调用exe并且获取程序进度和返回结果的一种方法

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

在某个项目中需要考虑使用java后台调用由C#编写的切图程序(exe),并且前端能够获取到切图的进度和相关描述信息。

2.解决思路

a.首先改造切图程序为接受参数从Main函数传递。

b.编写java后台传参调用exe的函数。

c.解决通信问题。

3.具体实现

3.1改写C#窗体程序

 

C#中的入口程序为Main函数,其中Main函数默认是没有参数的,如果添加参数,其只支持一个String数组参数,入口改写如下:

      使用java传参调用exe并且获取程序进度和返回结果的一种方法                 

将需要传入的参数写在args数组中,后续业务逻辑上因此做相关改写即可。

3.2java端传参调用

Java中可以利用Process类进行对exe或者是命名行cmd进行调用。具体例子如下:

 使用java传参调用exe并且获取程序进度和返回结果的一种方法

其中exec为传参调用,而waitFor函数为当前线程等待函数,并可获取到由该 Process 对象表示的进程终止后返回的值。

如果exe中不设置返回参数,则默认执行正确为0。

3.3通信设计

3.3.1方案一

a.前端发出请求,等待回应。

b.后台接受请求,调用起exe。

c.exe执行完后将信息写入到指定文本中。

d.java端监听程序执行完毕后,获取指定文本。

e.解析文本中的信息。信息可以按照自定义规则组织,传达所需表示的含义。

f.将解析后的数据返回给前端。

 

优点:

前端无需轮询,等待返回结果即可。

缺点:

会出现请求超时问题,并且无法知道exe执行的目前状态。

3.3.2方案二

a.前端发出请求,并开始定时触发程序状态查询请求。

b.后台接受请求,调用起exe。

c.exe执行过程、完毕均向指定文本中写入信息。

d.前端状态查询请求,不断读取指定文本中的状态信息,在前端进行相关展示。

 

优点:

规避请求超时问题,可以实时获取程序进程。

缺点:

前端需要进行定时状态轮询请求。

 

                          -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

 




原标题:使用java传参调用exe并且获取程序进度和返回结果的一种方法

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

杭州寄马来西亚:https://www.goluckyvip.com/tag/90928.html
促销邮件模板:https://www.goluckyvip.com/tag/9093.html
北京往马来西亚快递:https://www.goluckyvip.com/tag/90930.html
东莞寄马来西亚快递:https://www.goluckyvip.com/tag/90931.html
深圳寄马来西亚快递:https://www.goluckyvip.com/tag/90933.html
上海寄马来西亚快递:https://www.goluckyvip.com/tag/90934.html
川藏线自驾游要怎么走才比较划算呢?:https://www.vstour.cn/a/411240.html
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流