`
bruceyu
  • 浏览: 29913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Jar中Class文件搜索器

阅读更多
  曾有一个名为“jarsearch”的Eclipse插件,可惜只支持3.2.x,之后就再也没有消息了。
现在要在众多的Jar包中,查找一个不熟悉的类名,通常只能凭经验或Google,亦或者胡乱的
将可能的Jar包一并导入,这样有时候也无法立竿见影的找到。

  我自制了一个在Jar中搜索Class文件的小工具(如下图),并与大家一起分享。其中可能存
在一些Bug,请不吝指出。
 
  修正了5楼朋友所提出的2个Bug,并在Rar包中附上了源码。

  PS:其中的两个匹配方式,如查找“File”,用前者只能查到“java.io.File”,而用后者
就可以查到“java.io.FileWriter”等。

  注意:这个小工具只能在“JDK1.6”以上版本运行

  • 大小: 68.4 KB
分享到:
评论
5 楼 java.lang.Object 2009-08-20  
楼主的程序是用exe4j打包的吧,JAR文件被我找到了。反编译看了一下,发现有两个地方存在BUG:

1,JAR的后缀名应该是大小写无关的。而楼主的代码里面只考虑到了小写的JAR文件名。
2,楼主打开JAR文件后,构造JarFile后,遍历完条目没有关闭JarFile对象,导致JarFile对象被独占,使用完后即时关闭流是一个好的习惯。

  public void treeDir(File searchDir)
  {
    File rootDir = searchDir;
    if (!(rootDir.isDirectory())) {
      return;
    }

    String[] fileArr = rootDir.list();
    if ((fileArr == null) || (fileArr.length == 0)) {
      return;
    }

    String regexStr = "^.*\\.jar$";

    for (String str : fileArr) {
      File chargeFile = new File(searchDir + "/" + str);
      if (chargeFile.isDirectory()) {
        treeDir(chargeFile);
      }
      if ((chargeFile.isFile()) && (Pattern.matches(regexStr, str)) && (chargeFile.length() != 0L)) {
        this.jarFileList.add(chargeFile.getAbsolutePath());
        searchClassFileNameToList(chargeFile.getAbsolutePath());
      }
    }
  }


  public void searchClassFileNameToList(String jarFileName) {
    JarFile jarFile = null;
    try {
      File testFile = new File(jarFileName);
      if ((testFile.exists()) && (testFile.canRead()) && (testFile.canExecute()))
        jarFile = new JarFile(jarFileName);
      else
        this.errorFileList.add(jarFileName);
    }
    catch (IOException e) {
      e.printStackTrace();
    }
    searchClassFileNameToList(jarFile);
  }

既然楼主不喜欢把源代码附上,那我也不太好附上代码了。我觉得如何楼主是真心想交流的话,应该直接把源码附上。
4 楼 java.lang.Object 2009-08-20  
做成EXE的话也是没有用的。要看源码也是很方便的。
3 楼 george_space 2009-08-19  
太吝啬了,居然封装成exe,不如用c++做了
2 楼 bruceyu 2009-08-19  
用Ctrl+Shift+T,打开Type,的确是一个在现存已知的Jar中进行寻找的好办法,但是有很多情况下还是需要在未知的Jar中进行探索的。我的硬盘中至少有15~20G(应该有重复的可能)的Jar文件,有时候为了找一个适合的Jar还得凭记忆加搜索工具,所以想偷个懒,就以练练Swing开始而写的这个小工具。这若有一天也能帮到您那就太好了。
1 楼 ASPGUY 2009-08-19  
需要这样么?
你用Ctrl+Shift+T,打开Type,不就能看到某个类在哪个jar包李曼了么?
不要只用navigator,还要用一下package explorer。
呵呵。

相关推荐

    Jar Class搜索器 按包.类名查找Jar

    有很多情况下还是需要...我的硬盘中至少有15~20G(应该有重复的可能)的Jar文件,有时候为了找一个适合的Jar还得凭记忆加搜索工具,所以想偷个懒,就以练练Swing开始而写的这个小工具。这若有一天也能帮到您那就太好了。

    JarSearch,Java Class类所在的Jar包搜索器

    JarSearch by 五棵树 -------------------------------------------------------------------------- 功能说明: ...2、选择需要查找的jar文件所在目录,例如: D:\log4j\lib 3、然后点击搜索按钮即可。

    jar包搜索器

    jar包搜索引擎,你还为知道class名字,不知道属于哪个jar包苦恼吗? 这个工具完美解决你的问题 不但可以查询出class属于哪些jar包 而且可以下载搜索到的jar包 非常方便!

    在myeclipse中查看class文件 插件 jadnt158

    查看java的class文件,在网络上搜索了一下资料,这样就很方便的去查看别人的代码 在myeclipse中查看class文件,就像查看普通的java源文件一样,通过以下步骤可以做到: 安装设置步骤:1. 下载jadnt158.zip 。 2. ...

    JarClassConflictDetector:用于搜索 jar 文件目录并在其中查找冲突类的 Maven 插件

    catalogJarContents:此目标将搜索给定目录中包含的所有 .jar 文件,并为找到的所有 .jar 文件生成并保存 JarCatalog。 detectJarContentsConflict:此目标将从给定目录中提取 JarCatalog 并生成 ...

    org.wltea.analyzer.lucene.IKAnalyzer jar

    solr的IK分词器JAR及配置文件 jar包和配置文件的放置位置不一样,详情可搜索 IK Analyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。 org.wltea.analyzer.lucene.IKAnalyzer jar

    jad,jadclipse_3.3.0.jar

    1、下载jad.exe以及jadclipse_xxx.jar。(注意xxx表示版本,最好先看看你的Eclipse版本,然后网站搜索对应jar包以及jad.exe...File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。

    jd-gui0.3.6老朽痴拙汉化版(搜索器C++)

    jd-gui0.3.6老朽痴拙汉化版(C++版 jar搜索 class搜索),个人认为还是这个0.3.6版本的好用,能充分发挥剪贴板的功能.在这方面 jd-gui1.4.0 JAVA版 的明显不足...

    javaclass源码-classfinder:classfinder库/工具正在帮助Java开发人员在没有提供源代码的情况下轻松地在JVM内

    对于通用Java应用程序,基于这些路径项序列,从jar文件或类文件夹中搜索/加载所有类文件。 通常,开发人员希望在一个或多个jar文件中找到类,例如以下情况, 如果相同的类名托管在不同的jar文件中,则知道要加载哪个...

    Myeclipse反编译插件Jad的安装使用说明(附带插件)

    Associated Editors下单击add,添加JadClipse Class File Viewer,然后选择JadClipse Class File Viewer,并点击右侧的default按钮,将 JadClipse Class File Viewer 设置为 *.class without source 的默认编辑器。...

    java反编译工具

    Eclipse安装Java反编译工具,过程很简单...4、配置*.class文件关联(Eclipse):Windows-->Perference-->General-->Editors-->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。

    Class Viewer for Java:面向 Java 开发人员的轻量级快速参考工具。-开源

    一个类的 public 的完整概述:方法、构造函数和字段... 下载包括: ClassViewer.jar 和 ClassViewerConfig.xml 可以从 jar 中运行。 从命令行从 jar 中解压运行,用于类路径和本地文件访问。 没有使用或包含安装程序。

    class-resource-loader-spi-1.0.1.jar

    类资源加载器服务提供者提供在类路径中搜索满足特定条件的类的服务。 com.wesleyhome.johksoftware.resource/class-resource-loader-spi/1.0.1/class-resource-loader-spi-1.0.1.jar

    class-resource-loader-spi-1.0.0.jar

    类资源加载器服务提供者提供在类路径中搜索满足特定条件的类的服务。 com.wesleyhome.johksoftware.resource/class-resource-loader-spi/1.0.0/class-resource-loader-spi-1.0.0.jar

    Jive资料集

    系统缺陷 1 Jive的硬伤 2 查询的Bug <br> 安装配置 1 Jive Forum KB的license 2 MakeWAR.jar文件中的MakeWAR.class源代码MakeWAR.java 3 为Jive写的补丁程序patcher....

    拦截器和控制器的区别

    5、拦截器是包裹在过滤器中使用的。 复习 converter 转换器 i18n struts2 spring MVC 拦截器 interceptor 过滤器 filter web.xml implements filter filterchain arg2.doFilter(req,resp); 监听器 servlet...

    JSP动态网页制作基础培训教程源代码.rar

    读者应该确保计算机上安装有SQL Server 2000服务器,启动SQL Server服务后,打开查询分析器,然后执行本章目录下的db.sql文件自动生成并初始化数据库。 2.将本章的代码(文件夹news)拷贝到Tomcat服务器安装目录的...

    手机 pdf 阅读器

    (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且选择打开为UNICODE/TXT阅读) (对于NOKIA手机及其它部分手机,由于安全策略的限制,在Anyview的文件管理器中无法查看后缀为.jar的文件) ...

    网管教程 从入门到精通软件篇.txt

     如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p 即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r 找到坏扇区并...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

Global site tag (gtag.js) - Google Analytics