跳到导航
dev2dev.bea.com.cn
首页 资源中心 dev2dev学堂 在线技术论坛 专家Blog User Group CodeShare
dev2dev 首页 > 资源中心 > 专家Blog > 专家Blog文章
Eclipse插件之EasyExplorer

时间:2006-01-24
作者:俞黎敏
浏览次数:
本文关键字:EclipseEasyExplorer插件
文章工具
推荐给朋友 推荐给朋友
打印文章 打印文章

  本文介绍如何利用Eclipse插件EasyExplorer在Eclipse中的使用。

  Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境。

问题提出:
  如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,打开它。

解决方法:
  用EasyExplorer插件,有了这个插件就可以很方便地打开资源文件所在的文件夹了。

安装

JDK:1.5.0 从http://java.sun.com上去下载安装
Eclipse:3.1.1 从http://www.eclipse.org 上去下载解压
EasyExplorer 从http://sourceforge.net/projects/easystruts/

技巧

  Eclipse使用技巧之插件管理

  提示:新下载的插件PlugIn一定不要都放在原始的Eclipse目录下去,一大堆,累死你:(

  1. 前提是你已经安装好了Eclipse工具了,比如安装在E:\OpenSource\Eclipse\目录下,以下这个目录以%ECLIPSE_HOME%来进行表示;
  2. 此时默认的插件是在%ECLIPSE_HOME%\plugins目录中的;
  3. 在%ECLIPSE_HOME%下建立一个PlugInsNew的目录;
    比如:E:\OpenSource\Eclipse\PlugInsNew\
  4. 你下载了个新的插件,比如叫做:XYZ
  5.   那么就在%ECLIPSE_HOME%\PlugInsNew\目录下建立XYZ目录,目录里面是eclipse目录,eclipse目录包含有features与plugins两个子目录;结构如下图所示:

      

  6. 把下载的新插件的文件放在以下相应目录中
  7. %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
    %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\plugins

  8. 建立相关的.link的文件
  9.   然后在%ECLIPSE_HOME%\links目录里建立一个XYZ.link的文件
    内容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行这样的路径指示而已。
    这样,如果你下载了多个插件就可以如法炮制建立多个Link文件,想加载哪个插件就把哪个插件的Link文件放到%ECLIPSE_HOME%\links的目录中即可,使用与管理都很方便,建议千万不要放在默认的安装目录中;
      如果你的%ECLIPSE_HOME%与此不同,请修改XYZ.link文件里的路径

  10. 删除,关闭Eclipse
  11. 删除%ECLIPSE_HOME%\links\XYZ.link文件即可
    删除%ECLIPSE_HOME%\PlugInsNew\XYZ整个目录及文件

  12. 重新启动Eclipse即可

使用

  EasyExplorer插件安装方法采用上一节的《Eclipse使用技巧之插件管理》

  重新启动Eclipse后,在Package Explorer、Outline、Naviagtor、Problems、文件编辑等等窗口中右键,可以看到多个一个带有文件夹图标Easy Explore…菜单。

  在Package Explorer窗口中右键,如下图所示:

  


  在Naviagtor窗口中右键中右键,如下图所示:

  


   

  在Outline窗口中右键中右键,如下图所示:

  

   

  在Problems窗口中右键中右键,如下图所示:

  

  在文件编辑窗口中右键中右键,如下图所示:

  

  利用EasyExplorer插件可以在Eclipse用Explorer打开资源文件所在的文件夹。其它配置是在这里Windows => Preferences => Easy Explore => Target => explorer.exe {0}

  可以看到在Windows平台上是用explorer.exe {0}来打开的,{0}是用来传递参数的。

  


   技巧:我习惯以资源管理器的方式来打开文件夹,方便进行拖动操作,即左边带文件树,那么在这里你可以设置成为explorer.exe /e,{0}即可,这样用EasyExplore打开文件夹时就是以这种方式来打开的,而且左边的文件树里,直接定位到文件夹上面,很是方便。

  Explorer.exe的参数如下:大家可以根据自己的喜好进行设定:
  命令格式Explorer [/n][/e][[,/root],[path]][[,/select],[path filename]]

参数说明
  /n表示以“我的电脑”方式打开一个新的窗口,通常打开的是Windows安装分区的根目录。
  /e表示以“资源管理器”方式打开一个新的窗口,通常打开的也是Windows安装分区的根目录。
  /root,[path]表示打开指定的文件夹,/root表示只显示指定文件夹下面的文件(夹),不显示其它磁盘分区和文件夹;[path]表示指定的路径。
  如果不加/root参数,而只用[path]参数,则可以显示其它磁盘分区和文件夹中的内容。另外,[path]还可以指定网络共享文件夹。
  /select,[path filename]表示打开指定的文件夹并且选中指定的文件,[path filename]表示指定的路径和文件名。
  如果不加/select参数,则系统会用相应的关联程序打开该文件。如果[path filename]不跟文件名就会打开该文件夹的上级目录并选中该文件夹。

  通过对以上explorer.exe的参数分析,我们可能会有个希望就是实现既显示左边的文件树,又同时右边也定位到的选定的文件或文件夹上面。
那应当是设置为:explorer.exe /e,/select,{0},不过这件EasyExplore帮你打开的只是定位在文件夹上面,而不是相应的文件上面。

  你可以自己修改源代码来实现。
  把EasyExploreAction.java文件中的
if(selected instanceof IFile)
directory = directory.getParentFile();
if(selected instanceof File)
directory = directory.getParentFile();
注释掉,重启编译打包进去就可以,在Windows上面使用没有问题!

  打开这个插件包,我们可以看到easyexplore.jar里面只有三个文件,我们就用jad反编译过来看看,是怎么实现的。
  一个配置文件EasyExplorePreferencePage.java
  一个插件文件EasyExplorePlugin.java
  一个执行文件EasyExploreAction.java
  主要执行的相关代码是在执行文件EasyExploreAction.java中

  不过,我们可以从EasyExplorePlugin.java里面代码知道,EasyExplore支持Windows和Mac两种操作系统,关键代码如下:

protected void initializeDefaultPreferences(IPreferenceStore store)
    {
        String defaultTarget = "shell_open_command {0}";
        String osName = System.getProperty("os.name");
        if(osName.indexOf("Windows") != -1)
            defaultTarget = "explorer.exe {0}";
        else
        if(osName.indexOf("Mac") != -1)
            defaultTarget = "open {0}";
        store.setDefault("org.sf.easyexplore.targetPreference", defaultTarget);
    }

 

执行文件EasyExploreAction.java代码的关键分析:

    public void run(IAction action)
    {
        try
        {
            if("unknown".equals(selected))
            {
                MessageDialog.openInformation(new Shell(), "Easy Explore", "Unable to explore " + selectedClass.getName());
                EasyExplorePlugin.log("Unable to explore " + selectedClass);
                return;
            }
            File directory = null;
            if(selected instanceof IResource)
                directory = new File(((IResource)selected).getLocation().toOSString());
            else
            if(selected instanceof File)
                directory = (File)selected;
            if(selected instanceof IFile)
                directory = directory.getParentFile();
            if(selected instanceof File)
                directory = directory.getParentFile();
            String target = EasyExplorePlugin.getDefault().getTarget();
            if(!EasyExplorePlugin.getDefault().isSupported())
            {
                MessageDialog.openInformation(new Shell(), "Easy Explore", "This platform (" + System.getProperty("os.name") + ") is currently unsupported.\n" + "You can try to provide the correct command to execute in the Preference dialog.\n" + "If you succeed, please be kind to post your discovery on EasyExplore website http://sourceforge.net/projects/easystruts,\n" + "or by email farialima@users.sourceforge.net. Thanks !");
                return;
            }
            if(target.indexOf("{0}") == -1)
                target = target.trim() + " {0}";
            target = MessageFormat.format(target, new String[] {
                directory.toString()
            });
            try
            {
                EasyExplorePlugin.log("running: " + target);
                Runtime.getRuntime().exec(target);
            }
            catch(Throwable t)
            {
                MessageDialog.openInformation(new Shell(), "Easy Explore", "Unable to execute " + target);
                EasyExplorePlugin.log(t);
            }
        }
        catch(Throwable e)
        {
            EasyExplorePlugin.log(e);
        }
    }

  使用Runtime.getRuntime().exec(target);执行资源文件所在的文件夹target参数,就可以打开文件夹了。

总结

  此插件的功能很简单,但是很有用的小插件。如果你经常需要打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,打开它。现在有了这个插件就很方便了呀。

  从下载的网址我们可以知道,这个EasyExplore是由EasyStruts项目组开发的。在开发基本Struts应用程序时,相信很多人都曾经用过EasyStruts的,不过EasyStruts已经很久没有更新了,它的最新版本只支持到Eclipse 2.1。

  不过,从网站上面可以得知,他们正在往3.0上面迁移,支持Eclipse3.x,相信到时又有新的EasyStruts可以用了:)

相关新闻链接:EasyStruts port to Eclipse 3.x is in progress 2005-04-06
dot dot dot

dot
  作者其它文章
您对本文的评价
您对这篇文章的看法如何?
太棒了!5分 不错啊 4分 一般般 3分 有待提高 2分 不好 1分

   
相关技术