通过关键字查找jar文件的工具类

来源:互联网 发布:2006年网络流行歌曲 编辑:程序博客网 时间:2024/06/05 18:01
package org.smart.shoutu.external.util;import java.io.BufferedReader;import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.io.InputStreamReader;import java.util.Enumeration;import java.util.regex.Pattern;import java.util.zip.ZipEntry;import java.util.zip.ZipException;import java.util.zip.ZipFile;import org.springframework.web.bind.annotation.RequestMapping;public class Find {// jar包父目录public static final String path = "E:\\repository\\org\\smartFramework\\smart-common\\3.01.01.042";// 关键字public static final String keywords = "@RequestMapping(\"/admin/header\")";        public static void find() {File file = new File(path);                //定义正则过滤                final Pattern p = Pattern.compile(".+\\.jar$");File[] files = file.listFiles(new FileFilter() {@Overridepublic boolean accept(File pathname) {if (p.matcher(pathname.getPath()).matches()) {return true;} else {return false;}}});                search(files);}private static void search(File[] files) {try {for (File f : files) {if (f.isDirectory()) {                                     //递归                                     search(f.listFiles());} else {ZipFile jar = new ZipFile(f);                                        //获取jar文件内部元素的迭代器                                        Enumeration enumration = jar.entries();while (enumration.hasMoreElements()) { ZipEntry zipEntry = (ZipEntry) enumration.nextElement();InputStreamReader isr = new InputStreamReader(jar.getInputStream(zipEntry));BufferedReader br = new BufferedReader(isr);String line = br.readLine();int line_num = 1;while (null != line) {// System.out.println(line);if (line.contains(keywords)) {System.out.println("myurl=" + f.getPath() + ","+ zipEntry.getName() + ","+ "line number = " + line_num);}line = br.readLine();line_num++;}}}}} catch (ZipException z_e) {z_e.printStackTrace();} catch (IOException io_e) {io_e.printStackTrace();}}}

0 0
原创粉丝点击