清除MyEclipse升级之后的残留文件

MyEclipse 8.0 M2刚刚发布,MyEclipse自动升级成功之后发现硬盘竟然消耗掉了几百M,重启MyEclipse和计算机也没有减少我可怜D盘的空间占用,进入程序目录发现plugins目录竟然还遗留了非常多的8.0 M1的文件,明显特征是现在很多文件后缀是7.9.200,却还存在7.9.100的文件和文件夹。发现MyEclipse自动升级过程中竟然没有清除老的文件包,是在太弱了,而且和程序文件混杂在一起,叫人怎么清除这些没有用的文件哦。难道Eclipse也这样么?难怪Java就是占用空间,没有用的东西到处放,如果仅仅是备份就文件的话,移动到一个特定目录不就行了。

这次的目标是减少MyEclipse8.0 M1残留文件占用的空间,而保证M2正常运行。

经过分析,发现可以直接删掉MyEclipse 8.0 M2没有用到的文件即可,但是手工删除是在太慢,而且也容易删除错误。MyEclipse安装目录下configuration\org.eclipse.equinox.simpleconfigurator子目录的bundles.info 文件记录了MyEclipse所有加载plugin,于是找到从bundles.info找到所有MyEclipse 8.0 M2需要的文件的方法。具体步骤如下:

  1. 1、将bundles.info复制到桌面并重命名为bundles.csv;
  2. 2、用Excel打开bundles.csv,删除第一行#version=1,将C列拷贝到UltraEdit中,这样得到了诸如“file:/D:/Program Files/Genuitec/MyEclipse 8/Common/plugins/ca.ecliptical.emf.xpath_1.0.0.me200910150013.jar”的所有plugins列表;
  3. 3、在UltraEdit中替换路径前缀file:/D:/Program Files/Genuitec/MyEclipse 8/Common/为空,再替换所有\为/;
  4. 4、在Excel中新建一个sheet,将第三步得到的结果拷贝到B列;
  5. 5、进入MyEclipse 8.0 M2的Common目录,我的是D:\Program Files\Genuitec\MyEclipse 8\Common\,关闭MyEclipse程序之后将plugins目录重命名为plugins_prev(其他名称也可以但下面的步骤需要和这里的目录名称相同),并新建一个plugins目录
  6. 6、在UltraEdit中将第三步得到的结果中的plugins\替换为“move plugins_prev\”;(不包含引号)
  7. 7、将第六步得到的结果拷贝第四步的sheet到A列;
  8. 8、拷贝第四步的sheet到A列和B列到UltraEdit中新的编辑标签页中,并替换^t为空格,(需开启正则表达式选项,且使用UltraEdit引擎,下同),这样得到一系列的move命令行;
  9. 9、在运行对话框中输入cmd打开命令窗口,并将当前路径切换到MyEclipse 8.0 M2的Common目录(我的是D:\Program Files\Genuitec\MyEclipse 8\Common\),将第八步中的结果全部拷贝到cmd中执行,这样可以将所有需要的jar文件全部从plugins_prev目录移动到plugins目录中;
  10. 10、经过第9步我们发现所有的jar文件都移动了,但是原来的plugins目录下一些需要的目录并没有移动到新的plugins目录中去,我们还需要移动需要的目录,同样在第八步中的结果上面继续做文章,我们替换“move plugins_prev*jar^p”为^p,消除所有已经移动过的jar文件条目,再多次替换^p^p为^p,消除所有多余的空行,再替换“plugins*^p”为“plugins\^p”,即消除多余的目录名;
  11. 11、将第10步结果拷贝到第九步打开的cmd中执行,执行完成之后会将需要的目录也拷贝到新plugins目录下;
  12. 12、启动MyEclipse,不报错,大功告成!这个时候可以直接将plugins_prev目录给删除掉了,节约了好几百M空间。如果不放心也可以先将这个目录放着不删除

如果有些plugins目录没有放在MyEclipse 的Common下Plugins目录中,可先从bundles.csv中删除对应的条目。

其他MyEclipse或者Eclipse完善自动升级过程。