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",是一项实用的技能。这个项目不仅能够帮助我们巩固IO(输入/输出)操作的基础知识,还能让我们深入了解Java API的使用。下面将详细介绍这个...
通过标准输入(stdin)和标准输出(stdout),程序可以与用户在命令提示符下进行交互。例如,用户输入特定命令(如“add”、“delete”、“search”等)后,程序解析命令并执行相应操作。为了提高用户体验,可以...
### Unix命令详解与文件传输命令 #### 一、Unix系统基础命令 Unix系统是一类多用户、多任务的操作系统,广泛应用于服务器、超级计算机等领域。本文档将介绍一系列Unix下的常用命令及其用法。 ##### 1. 系统登录与...
标题中的“可扩展文件查找命令行”指的是一个用于在计算机文件系统中进行高效搜索的工具,它通过命令行界面操作,允许用户使用特定的搜索条件来定位文件。这个工具的独特之处在于它的可扩展性,意味着它可以接受不同...
对于外部命令,需要查找命令路径(可能涉及环境变量PATH的搜索),然后通过fork()创建子进程,再用exec()系列函数(如execlp()、execl()等)替换子进程的内存映像来运行该命令。 3. **管道和重定向**:Unix Shell...
批量查找文件内容是通过编程或使用特定工具来实现的,而不是手动逐个文件检查。这种方法可以大大提高工作效率,尤其当你需要处理成百上千甚至上万份文件时。 1. **编程方法**:许多编程语言如Python、Java、Perl、...
在VC++项目中,你可以创建一个`Util`类,包含一个成员函数,如`GetFileOpenExecutor`,接收文件扩展名作为参数,然后执行以上步骤。`Util.cpp`和`Util.h`文件应分别包含实现和接口声明。 例如,在`Util.cpp`中,你...
这个批处理程序可能通过执行一系列预定义的删除和整理命令,帮助用户快速清理这些无用的文件,优化电脑性能。 批处理程序的核心在于其命令行语法,常见的命令有: 1. `DEL` 或 `ERASE`:删除指定的文件或文件集。 2...
通过理解递归的基本原理、掌握`DirectoryInfo`类和相关方法的使用,以及注意异常处理和资源管理,开发者可以编写出健壮、高效的文件搜索程序。此外,了解如何在Windows环境下注册DLL文件,对于从事系统开发的程序员...
本项目“Java小程序——文件检索运行”是利用Java技术实现的一个实用工具,它能够帮助用户方便地在指定目录下查找特定类型的文件,并且可以直接运行这些文件。下面将详细解释这个项目的实现原理和涉及的关键知识点。...
文件目录类命令: 1. pwd 命令:显示当前绝对路径 2. ls 命令:显示文件和目录的信息 3. cd 命令:切换目录 4. mkdir 命令:创建目录 5. rm 命令:删除文件或目录 6. cp 命令:拷贝文件或目录 7. mv 命令:移动命令...
*find: 查找文件 *grep, egrep, fgrep: 在文件中搜索一个模式 磁盘管理命令 *bdf: 报告空闲磁盘块的数量 *df: 报告文件系统可用磁盘块的数量 *du: 磁盘使用的汇总 *dump, rdump: 本地或跨网络的增量文件系统备份 *...
这类文件通过一系列预定义的命令来执行特定任务或操作。它们广泛应用于自动化日常任务、系统维护和管理等领域。 #### 二、批处理文件的历史背景 批处理的概念起源于早期的操作系统,如DOS(磁盘操作系统),并在...
这个程序会在指定目录及其子目录下查找指定的文件,并输出找到的文件路径。 压缩包文件列表中的文件名如"MiniEdit.aps"、"MiniEdit.clw"、"MiniEditDlg.cpp"等,通常与软件开发相关。它们可能是Visual C++项目的一...
Linux 文件处理命令详解 Linux 文件系统具有良好的结构,系统提供了很多文件处理命令。在 Linux 中,每个文件都有自己的...在 Linux 系统中,文件处理命令可以帮助用户快速地查找、编辑和管理文件,从而提高工作效率。
### 注册表、常用网络DOS命令与批处理文件知识点...通过上述介绍可以看出,注册表、常用网络DOS命令和批处理文件都是Windows系统中非常重要的组成部分。它们不仅可以帮助我们更好地管理和维护系统,还能提高工作效率。
- **查找文件**:`find` 命令用于搜索特定条件的文件。 - 示例:`find /path -name "filename"` 在 `/path` 下查找名称为 `filename` 的文件。 - **复制文件**:`cp` 命令用于复制文件。 - 示例:`cp sourcefile ...
这个程序的作用是把诺基亚手机短信文件.vmg中的关键字段(时间、发件人、收件人、内容)提取出来汇总到一个文件中,这个文件可以导入到excel表格中,这样要重温短信的时候就不需要再去一个个打开文件了,直接打开...
8. **进程和权限管理**:文件查找器可能需要访问系统级命令,如Windows的重启、注销和关机。这可以通过`System.Diagnostics.Process`类来实现,但必须注意安全性和权限问题,确保程序不会滥用这些权限。 9. **异常...