`
fackyou200
  • 浏览: 301607 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

通过程序命令查找类文件

    博客分类:
  • s2sh
 
阅读更多

import java.io.File;   
import java.util.ArrayList;   
import java.util.Enumeration;   
import java.util.List;   
import java.util.zip.ZipEntry;   
import java.util.zip.ZipFile;   

public class FindInJar {   
    public String className;   

    public ArrayList jarFiles = new ArrayList();   

    public FindInJar() {   
    }   

    public FindInJar(String className) {   
        this.className = className;   
    }   

    public void setClassName(String className) {   
        this.className = className;   
    }   

    public List findClass(String dir, boolean recurse) {   
        searchDir(dir, recurse);   
        return this.jarFiles;   
    }   

    protected void searchDir(String dir, boolean recurse) {   
        try {   
            File d = new File(dir);   
            if (!d.isDirectory()) {   
                return;   
            }   
            File[] files = d.listFiles();   
            for (int i = 0; i < files.length; i++) {   
                if (recurse && files[i].isDirectory()) {   
                    searchDir(files[i].getAbsolutePath(), true);   
                } else {   
                    String filename = files[i].getAbsolutePath();   
                    if (filename.endsWith(".jar")||filename.endsWith(".zip")) {   
                        ZipFile zip = new ZipFile(filename);   
                        Enumeration entries = zip.entries();   
                        while (entries.hasMoreElements()) {   
                            ZipEntry entry = (ZipEntry) entries.nextElement();   
                            String thisClassName = getClassName(entry);   
                            if (thisClassName.equals(this.className) || thisClassName.equals(this.className + ".class")) {   
                                this.jarFiles.add(filename);   
                            }   
                        }   
                    }   
                }   
            }   
        } catch (Exception e) {   
            e.printStackTrace();   
        }   
    }   

    public List getFilenames() {   
        return this.jarFiles;   
    }   

    protected String getClassName(ZipEntry entry) {   
        StringBuffer className = new StringBuffer(entry.getName().replace('/', '.'));   
        return className.toString();   
    }   

    public static void main(String args[]) {   
        FindInJar findInJar = new FindInJar("com.xxx.xxx.XX");// Class Name  
        List jarFiles = findInJar.findClass("E:/xxxx/lib", true);// Path   
        if (jarFiles.size() == 0) {   
            System.out.println("Not Found");   
        } else {   
            for (int i = 0; i < jarFiles.size(); i++) {   
                System.out.println(jarFiles.get(i));   
            }   
        }   
    }   
}
 
分享到:
评论

相关推荐

    可扩展文件查找命令行

    此工具为命令行程序,可以在指定的目录中按照文件名通配符、创建时间、最后访问时间、最后更新时间条件查找文件,并且将此文件名等信息作为参数提供给其他程序处理。

    cmd操作命令和linux命令大全收集

    CMD命令:开始-&gt;运行-&gt;键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是一个 监测网络中 DNS...

    入门学习Linux常用必会60个命令实例详解doc/txt

    文件为doc版,可自行转成txt,在手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! ...入门学习Linux常用必会60个命令实例...通过last命令查看该程序的log,管理员...

    如何编写批处理文件批处理文件批处理文件

    简明批处理教程22009年10月20日 星期二 下午 05:35 最近对于批处理技术的探讨比较热,也有不少好的批处理程序发布,但是如果没有一定的相关知识恐怕不容易看懂和理解这些批处理文件,也就更谈不上自己动手编写了,古...

    诺基亚手机短信文件处理程序(含源代码)

    这个程序的作用是把诺基亚手机短信文件.vmg中的关键字段(时间、发件人、收件人、内容)提取出来汇总到一个文件中,这个文件可以导入到excel表格中,这样要重温短信的时候就不需要再去一个个打开文件了,直接打开...

    Visual C++程序开发范例宝典 - 第5章

    5.2 查找文件 实例177 搜索文件 实例178 使用多线程实现文件快速搜索 实例179 检查文件是否存在 实例180 提取指定文件夹目录到INI文件 5.3 与文件目录相关的命令操作 实例181 删除文件目录 实例182 重命名文件目录 ...

    Dos命令大全

    然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。...

    Visual C 程序开发范例宝典第5章

    5.2 查找文件  cc实例138 搜索文件  cc实例139 检查文件是否存在  cc实例140 提取指定文件夹目录到INI文件  5.3 与文件目录相关的命令操作  cc实例141 删除文件目录  cc实例142 重命名文件目录...

    vi命令入门详解.txt

    出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。 Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    1113.6.3 文件出错标志和文件结束标志置 0 函数 206 13.7 C库文件 208 13.8 本章小结 第1篇 基本知识 第1章 C++的初步知识 *1.1 从C到C++ *1.2 最简单的C++程序 1.3 C++程序的构成和书写形式 1.4 C++...

    注册表批量修改权限命令

    这是一个内核模式的驱动程序,可在键盘类驱动程序上演示键盘输入过滤,以便将 Caps-Lock 转变为控制键。在此级别过滤允许在 NT 刚好要“看到”键之前变换和隐藏键。Ctrl2cap 还显示如何使用 NtDisplayString() 打印...

    Linux命令笔记

    2:locate 在文件资料库中查找文件 语法:locate 文件名 3:which 搜索命令所在目录级别名信息 语法:which[命令名称] 4:whereis 搜索命令所在目录级帮助文档路径 语法:whereis[命令名称] 5:grep 在文件中搜索字串...

    shell编程和unix命令

    2.1.7 查找比某个文件新或旧的文件 17 2.1.8 使用type选项 17 2.1.9 使用size选项 18 2.1.10 使用depth选项 18 2.1.11 使用mount选项 18 2.1.12 使用cpio选项 18 2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find...

    迷你运行条软件打开程序管理器v1.2中文绿色免费版

    迷你运行条是一款用来快速打开程序、文件、目录、网址、执行命令的工具软件,从而免去了你在繁杂的桌面图标中、在冗长的开始菜单中、在深层级的目录中、在繁杂的收藏夹中查找程序、文件、目录、网址的烦恼,极大地...

    Visual C++ 程序开发范例宝典 源码 光盘 part2

    cc实例137 清空回收站 5.2 查找文件 cc实例138 搜索文件 cc实例139 检查文件是否存在 cc实例140 提取指定文件夹目录到INI文件 5.3 与文件目录相关的命令操作 cc实例141 删除文件目录 cc实例142 ...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    5.2 global.asax应用程序文件 5.2.1 应用程序事件 5.2.2 演示应用程序事件 5.3 ASP.NET配置 5.3.1 machine.config文件 5.3.2 web.config文件 5.3.3 设置 5.3.4 5.3.5 5.3.6 5.3.7 通过编程读写...

    大量批处理实用程序例程

    乱序重列某类文件.cmd 今天访问过的程序文件所在目录.cmd 以文件夹名为名建立文本文件.cmd 全盘删除每个文件夹下的指定文件.cmd 全盘搜索指定文件.cmd 全盘查找QQ.exe并执行.cmd 创建url格式的快捷方式.cmd 删除N天...

    Visual C++程序开发范例宝典(PDF扫描版).part2

     5.2 查找文件   cc实例138 搜索文件   cc实例139 检查文件是否存在   cc实例140 提取指定文件夹目录到INI文件   5.3 与文件目录相关的命令操作   cc实例141 删除文件目录   cc实例142 重命名...

    狂龙文件捕捉器v2.0

    甚至还有混搭,如果统一使用NTFS格式,用户需要重新分区或使用CMD命令进行转换格式等繁琐操作,未免有些麻烦,为了解决此困扰并根据本人在工作中大硬盘查找文件、文件夹遇到的困难开发了这款狂龙文件捕捉器,...

Global site tag (gtag.js) - Google Analytics