`
fackyou200
  • 浏览: 310971 次
  • 性别: 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));   
            }   
        }   
    }   
}
 
分享到:
评论

相关推荐

    java基于命令台的文件查找小程序FileLookup

    在Java编程语言中,开发一个基于命令行的文件查找小程序,如"FileLookup",是一项实用的技能。这个项目不仅能够帮助我们巩固IO(输入/输出)操作的基础知识,还能让我们深入了解Java API的使用。下面将详细介绍这个...

    C++基于命令提示符的通讯录程序

    通过标准输入(stdin)和标准输出(stdout),程序可以与用户在命令提示符下进行交互。例如,用户输入特定命令(如“add”、“delete”、“search”等)后,程序解析命令并执行相应操作。为了提高用户体验,可以...

    unix命令及上传文件命令

    ### Unix命令详解与文件传输命令 #### 一、Unix系统基础命令 Unix系统是一类多用户、多任务的操作系统,广泛应用于服务器、超级计算机等领域。本文档将介绍一系列Unix下的常用命令及其用法。 ##### 1. 系统登录与...

    可扩展文件查找命令行

    标题中的“可扩展文件查找命令行”指的是一个用于在计算机文件系统中进行高效搜索的工具,它通过命令行界面操作,允许用户使用特定的搜索条件来定位文件。这个工具的独特之处在于它的可扩展性,意味着它可以接受不同...

    实现unix命令解释程序 华工

    对于外部命令,需要查找命令路径(可能涉及环境变量PATH的搜索),然后通过fork()创建子进程,再用exec()系列函数(如execlp()、execl()等)替换子进程的内存映像来运行该命令。 3. **管道和重定向**:Unix Shell...

    批量查找文件内容替换

    批量查找文件内容是通过编程或使用特定工具来实现的,而不是手动逐个文件检查。这种方法可以大大提高工作效率,尤其当你需要处理成百上千甚至上万份文件时。 1. **编程方法**:许多编程语言如Python、Java、Perl、...

    VC++根据文件后缀名获文件打开方式

    在VC++项目中,你可以创建一个`Util`类,包含一个成员函数,如`GetFileOpenExecutor`,接收文件扩展名作为参数,然后执行以上步骤。`Util.cpp`和`Util.h`文件应分别包含实现和接口声明。 例如,在`Util.cpp`中,你...

    PORE垃圾文件批处理程序

    这个批处理程序可能通过执行一系列预定义的删除和整理命令,帮助用户快速清理这些无用的文件,优化电脑性能。 批处理程序的核心在于其命令行语法,常见的命令有: 1. `DEL` 或 `ERASE`:删除指定的文件或文件集。 2...

    C#实现递归查找文件函数源代码

    通过理解递归的基本原理、掌握`DirectoryInfo`类和相关方法的使用,以及注意异常处理和资源管理,开发者可以编写出健壮、高效的文件搜索程序。此外,了解如何在Windows环境下注册DLL文件,对于从事系统开发的程序员...

    Java小程序——文件检索运行

    本项目“Java小程序——文件检索运行”是利用Java技术实现的一个实用工具,它能够帮助用户方便地在指定目录下查找特定类型的文件,并且可以直接运行这些文件。下面将详细解释这个项目的实现原理和涉及的关键知识点。...

    Shell命令介绍,各种Shell命令的详细介绍

    文件目录类命令: 1. pwd 命令:显示当前绝对路径 2. ls 命令:显示文件和目录的信息 3. cd 命令:切换目录 4. mkdir 命令:创建目录 5. rm 命令:删除文件或目录 6. cp 命令:拷贝文件或目录 7. mv 命令:移动命令...

    HP-ux命令和配置文件

    *find: 查找文件 *grep, egrep, fgrep: 在文件中搜索一个模式 磁盘管理命令 *bdf: 报告空闲磁盘块的数量 *df: 报告文件系统可用磁盘块的数量 *du: 磁盘使用的汇总 *dump, rdump: 本地或跨网络的增量文件系统备份 *...

    BAT批处理文件语法

    这类文件通过一系列预定义的命令来执行特定任务或操作。它们广泛应用于自动化日常任务、系统维护和管理等领域。 #### 二、批处理文件的历史背景 批处理的概念起源于早期的操作系统,如DOS(磁盘操作系统),并在...

    在一个特定目录下查找文件的例子

    这个程序会在指定目录及其子目录下查找指定的文件,并输出找到的文件路径。 压缩包文件列表中的文件名如"MiniEdit.aps"、"MiniEdit.clw"、"MiniEditDlg.cpp"等,通常与软件开发相关。它们可能是Visual C++项目的一...

    Linux必学60个命令文件处理

    Linux 文件处理命令详解 Linux 文件系统具有良好的结构,系统提供了很多文件处理命令。在 Linux 中,每个文件都有自己的...在 Linux 系统中,文件处理命令可以帮助用户快速地查找、编辑和管理文件,从而提高工作效率。

    注册表,常用网络DOS命令 ,批处理文件

    ### 注册表、常用网络DOS命令与批处理文件知识点...通过上述介绍可以看出,注册表、常用网络DOS命令和批处理文件都是Windows系统中非常重要的组成部分。它们不仅可以帮助我们更好地管理和维护系统,还能提高工作效率。

    文件管理命令 总结.pptx linux常用命令大全

    - **查找文件**:`find` 命令用于搜索特定条件的文件。 - 示例:`find /path -name "filename"` 在 `/path` 下查找名称为 `filename` 的文件。 - **复制文件**:`cp` 命令用于复制文件。 - 示例:`cp sourcefile ...

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

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

    文件查找器源码(C#开发,VisualStudio2005环境)

    8. **进程和权限管理**:文件查找器可能需要访问系统级命令,如Windows的重启、注销和关机。这可以通过`System.Diagnostics.Process`类来实现,但必须注意安全性和权限问题,确保程序不会滥用这些权限。 9. **异常...

Global site tag (gtag.js) - Google Analytics