`
lihong11
  • 浏览: 452525 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

查找某个类所在jar包

阅读更多
package com.test;

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.util.BaseUtil");
	//jar包所在的位置
        List jarFiles = findInJar.findClass("E:/workspace/test/WEB-INF/lib", true);
        if (jarFiles.size() == 0) {
            System.out.println("Not Found");
        } else {
            for (int i = 0; i < jarFiles.size(); i++) {
                System.out.println(jarFiles.get(i));
            }
        }
    }

}

 

0
4
分享到:
评论

相关推荐

    eclips插件,用于查找某个class所在的jar包

    Eclipse作为一个流行的Java集成开发环境(IDE),提供了丰富的插件来增强其功能,其中"eclips插件,用于查找某个class所在的jar包"就是这样一个实用工具。这个插件名为"com.danikenan.eclipse.classlocator_1.0.8",...

    通过import导入包查找所在jar包工具

    "通过import导入包查找所在jar包工具"是一种实用的解决方案,它能帮助开发者快速定位到所使用的类所在的JAR文件。这个工具通常是一个自定义开发的小程序,它会解析Java源代码,分析import语句,并追踪到对应的JAR...

    JAR包查找工具

    例如,当遇到某个类的错误或需要了解其来源时,通过此工具可以迅速找到对应的JAR包,进而进行调试或替换操作。 总的来说,"JAR包查找工具"是一个实用的开发辅助工具,它结合了SWT的UI优势,简化了对Java项目中类...

    根据class类名在所有Jar包文件中查找class类路径以及jar名字

    用户可以不用打开Jar包,直接输入路径和要查找的文件即可搜索。 2.列出指定路径下的所有Jar包文件 3.除了对Jar包进行搜索分析外,还可以对zip包进行分析 4.填写搜索路径是最好不要只填写“E:/”根盘目录 5.建议将...

    eclipse查看jar包class文件源码插件,jar包反编译查看工具

    这是因为有时我们可能需要理解别人的代码实现,或者查找某个类或方法的实现细节。Eclipse作为一款强大的Java集成开发环境,提供了多种方式来帮助开发者查看.jar文件中的.class文件源码。本文将详细介绍如何在Eclipse...

    查看import的类是出自哪个jar包的方法

    查看import的类是出自哪个jar包的方法 Java 中的导入(import)语句是我们日常编程中最常用的语句之一,但是有时候我们需要知道某个类是来自哪个 jar 包的,这篇文章将为大家带来一个查看 import 的类是出自哪个 ...

    jar文件查看工具

    4. **搜索和查找**: 使用内置的搜索功能,输入关键字查找特定的类或资源。 5. **提取文件**: 如果需要,可以将`jar`文件中的某个或某些文件导出到本地文件系统。 6. **编辑和更新**: 高级的jar查看工具可能允许...

    myeclipse10 打包时导出war问题解决办法

    在标题和描述中提到的问题,“myeclipse10 打包时导出war问题解决办法,解压文件夹,替换jar包”,可能是指在打包过程中遇到了某个特定的jar文件冲突或者版本不兼容的情况。这可能是由于以下原因: 1. **依赖冲突**...

    查看jar工具:jd_gui

    3. **搜索**: JD-GUI提供搜索功能,可以在整个JAR文件中查找特定的类、方法或变量。 4. **快速导航**: 通过类继承树和方法调用图,可以快速了解类之间的关系。 5. **代码高亮和折叠**: 支持代码高亮显示,便于阅读,...

    Java class finder

    3. **显示结果**:查找结果通常会列出匹配的类,包括完整的包名和类名,以及它们所在的文件位置。 4. **高级选项**:有些Java Class Finder工具可能提供高级选项,比如搜索接口、枚举、注解等,或者按照继承关系、...

    Java程序生成exe可执行文件详细教程(图文说明)

    默认情况下程序会去系统的注册表,环境变量及相关的目录查找 jre,因为我们只需要自带的 jre,所以这里我把默认的选项移除了,然后添加我们自己的 jre 所在的目录路径,点+号开始:这里还是建议使用相对的目录路径:...

    eclipse汉化包

    汉化包的使用不仅限于初学者,即便是经验丰富的开发者,有时也会因为某个特定的术语或功能名称而感到困惑,此时汉化包就能提供很大的帮助。不过,值得注意的是,尽管汉化包可以极大地改善用户体验,但并非所有的插件...

    jdk-lib压缩

    当程序需要使用某个类时,ClassLoader会查找对应的字节码文件,将其加载到JVM中。`rt.jar`中的类通常会被BootClassLoader加载,而其他库则由ExtensionClassLoader和AppClassLoader依次加载。 四、使用lib中的库 在...

    JavaMail抛java.lang.NoClassDefFoundError (comsunmailutilLineInputStream)异常解决方案

    2. **检查类路径**:确保`JavaMail`相关的JAR文件(如`javax.mail.jar`和`activation.jar`)以及`com.sun.mail.util`包所在的JAR(通常是`mailapi.jar`)被添加到了项目的类路径中。在IDE如Eclipse或IntelliJ中,...

    【05-面向对象(下)】

    名字的局部变量,就使用该变量,如果不存在,则到该方法所在的内部类中查找是否存在该名字的属性,如果存在 则使用该属性。 •总之,第一步先找局部变量,第二步,内部类的属性,第三步。外部类的属性。 ...

    Java正则表达式测试工具

    3. 打开命令行终端(在Windows上通常是cmd.exe),定位到QRe-V0.2.jar所在的目录。 4. 输入命令 `java -jar QRe_V0.2.jar`,然后按回车键执行。这里的`-jar`参数指定运行的是一个jar文件,而`QRe_V0.2.jar`则是我们...

    jd_gui反编译工具

    5. **搜索功能**:内置的搜索工具允许你快速查找特定的类、方法或字符串。 使用JD-GUI时,你需要确保以下几个关键知识点: - **Java字节码**:了解Java字节码的基本概念,它是Java源代码编译后的产物,可以在任何...

    jd-gui-0.3.5.windows

    4. **搜索功能**:内置的搜索功能允许用户快速查找特定的类、方法或字符串。 5. **调试辅助**:对于调试过程中的问题,JD-GUI能帮助开发者理解被调用的方法和执行路径。 在实际应用中,JD-GUI可以用于: - **逆向...

    java反向编译软件jd-gui

    2. 调试问题:当遇到某个库的使用问题,但又没有源码时,反编译可以帮助我们分析库的内部行为,找出问题所在。 3. 代码逆向工程:在软件安全领域,逆向工程是重要的手段,通过反编译了解程序的工作原理,检测潜在的...

    java 面试题 总结

    引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...

Global site tag (gtag.js) - Google Analytics