searchClass(dir);
return classVersionInfoMap;
}
/**
* 递归方法
* 搜索当前文件夹下的class文件,并计算版本信息,保存在map中
* 当搜索到文件夹时,递归搜索
* @param dir
* @throws Exception
*/
protected void searchClass(File dir) throws Exception{
File[] childFiles = dir.listFiles();
for (File childFile : childFiles){
if (childFile.isDirectory()){
//递归搜索子文件夹
searchClass(childFile);
} else{
if (childFile.getName().toLowerCase().endsWith(".class")){
//搜索出class文件
//将版本信息记录在map中
putVersionInfo(ClassVersion.checkClassVersion(childFile), childFile.getAbsolutePath());
}
}
}
/**
* 将版本信息记录在map中
* @param version
* @param absolutePath
*/
private void putVersionInfo(String version,String absolutePath){
List
if (classVersionInfoMap.containsKey(version)){
list = classVersionInfoMap.get(version);
} else{
list = new ArrayList
}
list.add(absolutePath);
classVersionInfoMap.put(version, list);
}
}