[发明专利]一种基于JAVA技术的调用外部可执行命令的系统及方法有效
申请号: | 201410082313.6 | 申请日: | 2014-03-07 |
公开(公告)号: | CN104899081B | 公开(公告)日: | 2018-03-09 |
发明(设计)人: | 黄镇 | 申请(专利权)人: | 无锡天脉聚源传媒科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京市安伦律师事务所11339 | 代理人: | 刘良勇,杨永波 |
地址: | 214028 江苏省无锡市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 java 技术 调用 外部 可执行 命令 系统 方法 | ||
技术领域:
本发明涉及计算机语言领域,具体地涉及一种调用外部命令的系统及其方法,特别是一种基于JAVA技术的调用外部可执行命令的系统及方法。
背景技术:
目前通用的JAVA调用外部应用系统的方案是使用JAVA内部提供的Runtime类的exec(String s)方法生成的Process类来执行外部命令,简单的获外部命令输出的标准流和错误流,此方案在正常情况下是没有问题的,但是当外部应用系统存在以下两种不正常的情况时,就会出现卡顿、延迟甚至崩溃的情况:
1)执行时间超出预期或假死;
2)执行时产生大量的输出流内容。
发明内容:
为解决上述技术问题,本发明提供一种基于JAVA技术的调用外部可执行命令的系统,包括:构造工具模块,用于初始化系统;属性设置模块,用于设置系统运行时所需的各种参数;启动外部命令模块,用于启动外部应用命令;输出模块,用于获取并输出外部命令输出的标准流和错误流;超时判断模块,用于监控外部应用命令是否超时和是否终止;结果返回模块,用于返回系统的运行结果;存储模块,用于存储系统运行中需要存储的数据。
优选地,所述属性设置模块中的属性包括有,超时时长阀值、监听超时间隔、标准/异常输出流对象、输出模式、返回值属性。
优选地,所述启动外部命令模块通过JAVA API中的Runtime类的exec方法启动外部命令。
优选地,所述输出模块通过多线程的方式输出标准流和错误流。
优选地,所述输出模块输出标准流和错误流的方式分为单行读取输出和非单行读取输出,当输出的内容较少且输出的内容需要后续调用时选用单行读取方式,当输出的内容较多时选用非单行读取方式。
优选地,所述超时判断模块在上述启动外部命令模块启动外部命令的同时开始计时,以上述属性设置模块中所述监听超时间隔为周期,循环监听上述外部命令的返回状态,如果上述外部命令的返回状态显示外部系统执行完毕或发生异常或上述外部命令的返回状态在上述属性设置模块中所述超时时长阀值的时间内没有显示上述外部命令执行完毕,则直接结束上述外部命令,并调用上述结果返回模块。
另一方面,本发明还提供一种基于JAVA技术的调用外部可执行命令的方法,包括:调用构造函数;初始化系统运行时所需的各种属性参数;启动外部应用命令;获取并输出外部命令输出的标准流和错误流;监控外部应用命令是否超时和是否终止;返回系统的运行结果。
优选地,设置系统运行时所需的各种属性参数,其中所述各种参数包括设置超时时长阀值、设置监听超时间隔、设置标准/异常输出流对象、设置输出模式、设置返回值属性。
优选地,通过JAVA API中的Runtime类的exec(String s)方法启动外
部命令。
优选地,通过多线程的方式输出标准流和错误流。
优选地,获取并输出标准流和错误流的方式分为单行读取输出和非单行读取输出,当输出的内容较少且输出的内容需要后续调用时选用单行读取方式,当输出的内容较多时选用非单行读取方式。
优选地,以上述监听超时间隔为周期,循环监听外部命令的返回状态,如果上述外部命令的返回状态显示外部命令执行完毕或发生异常或在上述超时时长阀值的时间内没有显示外部命令执行完毕,则结束上述外部命令,返回运行结果。
本发明基于java技术提供了一种使用java语言调用外部可执行程序的系统和方法,并且巧妙的使用询问机制,间隔的捕获特定异常,并抛出多线程输出标准流与错误流,彻底解决了外部应用程序在被java调用产生的大量输出流而导致的程序假死问题和超出预期的执行时间问题。
附图说明:
图1为本发明实施方式涉及的基于JAVA技术的调用外部可执行命令的系统的结构框图;
图2为本发明实施方式涉及的基于JAVA技术的调用外部可执行命令的方法的流程图;
图3为上述超时判断模块4运行时的流程图。
具体实施方式:
下面根据附图所示实施方式阐述本项发明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡天脉聚源传媒科技有限公司,未经无锡天脉聚源传媒科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410082313.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种塑料粒子除尘设备
- 下一篇:一种防粘连双阶双转子连续冷却脱硫胶粉的装置