快速业务通道

基于JDT的JAR源代码搜索 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
njavares)    {         /* JarEntryDirectory 相当于 META-INF 文件夹 */         if (o instanceof JarEntryDirectory)         {          JarEntryDirectory ff =  (JarEntryDirectory)o;          IJarEntryResource[]  children = ff.getChildren();          for  (IJarEntryResource e : children)          {             if (e instanceof JarEntryDirectory)             {                /* 这里需要递归处 理 */             }              else if (e instanceof JarEntryFile)              {                 /* 处理该文本文件 */              }           }  }  /*  JarEntryFile 相当于 META-INF 文件夹下的 MANIFEST.MF 或者  .properties 文件等 */        else if (o instanceof  JarEntryFile)        {           JarEntryFile ff = (JarEntryFile) o;  /* 处理该文本文件  */        }     }  }

步骤 6. 获得非 JAVA 资源的源代码并比较

在本文的代码示例中只展示从 JarEntryFile 获得源代码的方法,如果需要使用其他类型的非 JAVA 资源的获 取方法,请查看附件中的源码。

清单 7. 获得非类文件的文本内容并且 比较

/**  * 该方法用于获得 JarEntryFile 源代码并 且比较获得结果   */  private void cooperate (JarEntryFile ff, Pattern searchPattern)   {      ByteArrayInputStream contents;     try      {       contents = (ByteArrayInputStream) ff.getContents ();       byte[] bs = new byte[contents.available ()];       contents.read(bs);       String con  = new String(bs);       Matcher matcher =  searchPattern.matcher(con);       while (matcher.find())       {  /* 获得结果的偏移和长度 */          int start = matcher.start();         int  length = matcher.group().length();       }      }     catch (Exception e)     {     }  }

基于JDT的JAR源代码搜索(6)

时间:2010-11-20 IBM 魏强 王芹华 邵兵

步骤 7. 输出结果

为了简单,程序会将结果打 印到控制台上,包括结果中的偏移量、长度、以及查找到源代码路径。

具体应用环境 ---RCP 中查找源码

在 RCP 二次开发中,有时候非常需要 查看已有 UI 的源码,供程序员参考使用。下面将使用前面开发的例子搜索包含 UI 上某字符串的源文件或源代码。一般来说,界面上的字符串都被存放于 .properties 文件,方便修改和多语言处理。由于 .properties 中可能出现占 位符,界面显示的是处理占位符后的结果,所以需要选取合适的字符串进行搜索 。搜索到 .properties 文件后,就根据该 .properties 文件所在的包名,和自 身的文件名,搜索引用该 properties 文件的类。如对于 com.ibm.wise.A_zh_CN.propertis 文件,搜索 com.ibm.wise.A 即可,具体原 因可以搜索 ResourceBundle 的相关资料进行查阅。下面展示这一搜索过程。

步骤 1. 根据 UI 上的字符串获得其 properties 文件所在

图 3. 要搜索的 UI 字符串

例子将试图搜索包含“This section provides general information about” 字符串的 properties 文件,如果未搜索到,可以 适当缩短字符串长度。

图 4. 输入

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号