2019独角兽企业重金招聘Python工程师标准>>>
1. 取得当前输入的console
/*** 取得控制台的字符串的Docment* @param processConsoleName 控制台名称,如在java application 中定义的名字为test ,则这个地方的输入为test即可* @return null*/public static IDocument getConsoleMsgByProcessConsole(String processConsoleName){IConsoleManager manager = ConsolePlugin.getDefault().getConsoleManager(); IConsole [] console = manager.getConsoles();for (IConsole iConsole : console) {if(iConsole instanceof ProcessConsole){ProcessConsole process = (ProcessConsole) iConsole;if(process.getName() != null && process.getName().contains(processConsoleName)){IDocument doc = process.getDocument();if(doc != null){return doc;}}}}return null;}
1. 开始处理每一行。也可以取得所有/*** 判断控制台信息是否有异常* @param consoleName* @throws BadLocationException */private boolean isConsoleMsgException(String consoleName) throws BadLocationException{IDocument doc = ProjectUtils.getConsoleMsgByProcessConsole(consoleName);if(doc == null){return false;}String consolelMsgStr = doc.get();if(consolelMsgStr == null || consolelMsgStr.length() ==0){return false;}//开始遍历每一行。查找问题int totalLine = doc.getNumberOfLines();for(int i = 0;i<totalLine;i++){IRegion region= doc.getLineInformation(i);String liniter= doc.get(region.getOffset(), region.getLength());if(StringUtils.contains(liniter, "ERROR")){return true;}}return false;}
问题解决。问题想复杂了,花了我一天多的时间。细细分析其实很简单。