李敏  
日历
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234
统计
  • 随笔 - 1
  • 文章 - 40
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿(1)

文章分类

文章档案

相册

收藏夹

它山之石

聚贤庄

搜索

  •  

最新评论

 
 
 
  首先声明,此方法不是我所发明。所以我在这里只是一个转述者。

 
  所谓暴力,即是通过普通方法无法完成而选用的下下策。

  方法原理就是通过手工添加配置信息来进行强行安装插件。(我目前只测试了SVN的插件,至于其他的插件则无法保证)

  示例:

  向MyEclipse8.6中安装SVN插件。

  准备工作:

  1)下载site-1.6.18.zip文件包
  2)插件配置代码生成器(PluginConfigCreator.java)
  3)备份MyEclipse-8.6\configuration 文件夹
 
  步骤:
  1)根据个人的开发习惯来安排site-1.6.18.zip中的文件
  2)用“插件配置代码生成器”来生成指定目录下所包含的插件的配置信息
  3)把配置信息写入到configuration\org.eclipse.equinox.simpleconfigurator目录下的bundles.info中

  最后再来展示PluginConfigCreator.java源码。(为了编译方便,所以没有采用“显示行号”的样式)

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 9. * MyEclipse9 插件配置代码生成器 10. * 11. * 12.
 
*/

public class PluginConfigCreator {

    
public PluginConfigCreator() {
    }

    
public void print(String path) {
        List
<String> list = getFileList(path);
        
if (list == null) {
            
return;
        }

        
int length = list.size();
        
for (int i = 0; i < length; i++) {
            String result 
= "";
            String thePath 
= getFormatPath(getString(list.get(i)));
            File file 
= new File(thePath);
            
if (file.isDirectory()) {
                String fileName 
= file.getName();
                
if (fileName.indexOf("_"< 0) {
                    print(thePath);
                    
continue;
                }
                String[] filenames 
= fileName.split("_");
                String filename1 
= filenames[0];
                String filename2 
= filenames[1];
                result 
= filename1 + "," + filename2 + ",file:/" + path + "\\"
                        
+ fileName + "\\,4,false";
                System.out.println(result);
            } 
else if (file.isFile()) {
                String fileName 
= file.getName();
                
if (fileName.indexOf("_"< 0) {
                    
continue;
                }
                
int last = fileName.lastIndexOf("_");// 最后一个下划线的位置
                String filename1 = fileName.substring(0, last);
                String filename2 
= fileName.substring(last + 1, fileName
                        .length() 
- 4);
                result 
= filename1 + "," + filename2 + ",file:/" + path + "\\"
                        
+ fileName + ",4,false";
                System.out.println(result);
            }

        }
    }

    
public List<String> getFileList(String path) {
        path 
= getFormatPath(path);
        path 
= path + "/";
        File filePath 
= new File(path);
        
if (!filePath.isDirectory()) {
            
return null;
        }
        String[] filelist 
= filePath.list();
        List
<String> filelistFilter = new ArrayList<String>();

        
for (int i = 0; i < filelist.length; i++) {
            String tempfilename 
= getFormatPath(path + filelist[i]);
            filelistFilter.add(tempfilename);
        }
        
return filelistFilter;
    }

    
public String getString(Object object) {
        
if (object == null) {
            
return "";
        }
        
return String.valueOf(object);
    }

    
public String getFormatPath(String path) {
        path 
= path.replaceAll("\\\\""/");
        path 
= path.replaceAll("//""/");
        
return path;
    }

    
public static void main(String[] args) {
        
/* 你的插件的安装目录 (切记文件分隔符) */
        String plugin 
= "D:\\Project\\Tools\\Java\\SDK\\Genuitec\\MyEclipse-8.6\\third-plugin\\site-1.6.18";

        
new PluginConfigCreator().print(plugin);
    }
}


由于以上源码采用的是控制台输出信息的方式,所以不方便采集。不过,我们可以通过一个DOS命令来解决这个问题。

C:\bin>java PluginConfigCreator > c:\config.txt

“>”命令可以进行简单的IO输出。这里则是把输出信息保存到C盘下的一个名为config的文本文件中。




原文:
http://heisetoufa.iteye.com/blog/994724

posted on 2012-09-06 05:17 李敏 阅读(271) 评论(0)  编辑  收藏 所属分类: 开发工具配置

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问  
 
 
Copyright © 李敏 Powered by: 博客园 模板提供:沪江博客