快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
UI 字符串的程序界面

点击 OK 就可以进行搜索。

图 5. 属性文件搜索结果(用时 3.23 秒)

结果显示了包含该字符串的 properties 文件路径,以及字符串在该文件中 出现的起始位置和长度信息。该文件包含于 Jar 文件中。根据搜索到的路径, 打开文件查看源码。

图 6. 属性文件源代码

图中灰色背景部分就是需要查找的字符串。

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

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

步骤 2. 根据 properties 文件名获得引用该 properties 文件的类

在获得 properties 文件名之后,根据搜索到的 properties 文件名(在本文的例子中 是 gui.properties),搜索引用该属性文件的 java 类 , 输入查询的字符串为 :com.ibm.btools.blm.ui.attributesview.resource.gui。

图 7. 输入 使用属性文件的字符串程序界面

图 8. 类搜索结果(用时 2.43 秒)

通过 Open Type 功能,输入 BLMAttributesviewMessageKeys,就可 以找到此 .class 文件,打开 .class 文件就可以查看它的源代码。

其 他接口简单介绍

这里简单的介绍了 JDT 中与 Jar 相关的类的其他有用 接口,如表 1 所示。

表 1. 其他接口介绍

接口
IClassFile isClass():boolean 判断是否是 class 类型 isInterface():boolean 判断是否是 interface 类型
PackageFragment createCompilationUnit ():ICompilationUnit 新建 JAVA 文件 delete():void 删除此包 getClassFile():IClassFile 得到包下某个 class 文件 getClassFiles():IClassFile[] 得到包下所有 class 文件 getCompilationUnit():ICompilationUnit 得到包下某个 java 文件 getCompilationUnits():ICompilationUnit[] 得到包下所有 java 文件 rename():void 重命名
JarPackageFragmentRoot getJar():ZipFile 得到 jar 文件对应的 ZipFile getKind ():int 可以是 IPackageFragmentRoot.K_SOURCE 或者 IPackageFragmentRoot.K_BINARY,表示是源代码类型还是二进制类型 isArchive():boolean 判断是否是压缩文件 isReadOnly():boolean 判 断是否只读

结束语

在进行二次开发时,通 过查看源代码可以很好的帮助程序员了解原有系统,同时对于查找和分析代码漏 洞也有很大的帮助。该文章简单的介绍了如何使用 JDT 提供的接口进行源代码 的搜索,文章内容仅供参考,有兴趣的朋友可以参考该文章的实现,进行进一步 的优化,提高搜索效率,或者做成实用的插件发布,相信会受到很多 Java 程序 员的喜爱。

原文地址:http://www.ibm.com/developerworks/cn/opensource/os-ecl- jdtsearch/

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号