日期:2014-05-20  浏览次数:20904 次

Java读取控制 error code=109 message=管道已结束
本帖最后由 yangqi900 于 2013-05-14 09:34:00 编辑

Process process = Runtime.getRuntime().exec(antiCmd);
Scanner scanner = new Scanner(process.getInputStream());
while(scanner.hasNext()){
        line = scanner.nextLine() ;
System.out.println("-->"+line);
}

我是调用杀毒软件,然后获取杀毒软件的输出,当信息过多,比如几十条以上时,会出现错误导致读取失败,
ERROR = API Console
error code = 109 
message = 管道已结束

有没有人知道是怎么回事啊,如何处理?

------解决方案--------------------
日志少的话你读取没有问题吗?
错误原因:可能是在调杀毒软件的主函数结束部分调用了exit()函数结束程序导致,因此只能将主函数中的exit(0)函数去掉,改为return返回,杀毒软件你肯定修改不了,你在
Process process = Runtime.getRuntime().exec(antiCmd);
Scanner scanner = new Scanner(process.getInputStream());直接增加Sleep(1200).看服务运行是否正常?