当前位置: 代码迷 >> Eclipse >> 剔除Eclipse升级后的旧版本插件
  详细解决方案

剔除Eclipse升级后的旧版本插件

热度:66   发布时间:2016-04-23 12:52:37.0
删除Eclipse升级后的旧版本插件

注2:不要升级你的Eclipse indigo到SR1或SR2,部署项目N多莫名其妙的问题

注1:经一下代码清理后的Eclipse可能会有诸多问题,请慎用!

Eclipse升级后不会自动删除旧文件,导致占用很多磁盘资源,网上找段代码,贴过来。我用64位的Eclipse会有问题,清理后svn无法加载本地类库,此处屏蔽对svn的清理

import java.io.File;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;public class EclipseClean {	public static void rmOld(String dir) {		try {			File root = new File(dir);			if (!root.exists() || !root.isDirectory())				throw new Exception(dir + " is not Directory");			List<String> childs = new ArrayList<String>();			for (String child : root.list()) {				childs.add(child);			}			Collections.sort(childs);			String preName = "";			File preFile = null;			String name = "";			Pattern p = Pattern.compile("([\\w\\._]*)_\\d.*");			Matcher m;			for (int i = 0; i < childs.size(); i++) {				m = p.matcher(childs.get(i));				if (m.find()) {					name = m.group(1);					if (name.equals(preName)) {						String fileName = preFile.getName();						if(!fileName.contains("tigris")){							System.out.println("delete:" + dir + "\\" + fileName);							rm(new File(dir + "\\" + fileName));						}					}					preFile = new File(childs.get(i));					preName = name;				}			}		} catch (Exception e) {			e.printStackTrace();		}	}	public static void rm(File dir) {		if (dir.isDirectory())			for (File file : dir.listFiles()) {				if (file.isFile())					file.delete();				else if (file.isDirectory())					rm(file);			}		dir.delete();	}	public static void main(String[] args) {		rmOld("C:\\Program Files\\eclipse\\plugins");		rmOld("C:\\Program Files\\eclipse\\features");	}}
  相关解决方案