`
lihong11
  • 浏览: 455669 次
  • 性别: 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.建议将...

    jar包搜索器

    针对这一痛点,“jar包搜索器”应运而生,它是一款专门用于帮助开发者快速查找类所在的JAR包的工具。 #### 主要功能 1. **类名查询**:用户只需输入类名,系统就能自动搜索并显示该类所在的JAR包列表。 2. **JAR包...

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

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

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

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

    教你找出 运行java项目,使cpu 100%,如何排查出是哪个jar包的哪个线程导致的

    以下是一套详细的排查步骤来帮助你找出是哪个jar包的哪个线程造成了这个问题。 首先,你需要了解CPU资源消耗高的基本监控方法。在Linux系统中,你可以使用`top`命令来查看当前系统中所有进程的资源使用情况。按`...

    反编译jar包应用jd-gui

    - **错误排查**:当遇到运行时异常或问题时,如果只有jar包而没有源码,JD-GUI可以帮助查看问题所在的类和方法。 - **逆向工程**:在安全领域,逆向工程是必要的,以理解恶意软件的工作方式或保护自己的软件免受...

    jar文件查看工具

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

    javac、java打jar包命令实例

    此外,如果需要指定类路径,可以在运行jar包之前指定-classpath参数,比如: ```shell java -classpath . -jar hello.jar ``` 最后,本知识点还推荐了一些Java的参考手册,如《Thinking in Java中文手册》、《JDK...

    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反编译工具jd-gui-windows-1.6.6

    对于标签“jar包反编译”,这意味着JD-GUI不仅可以处理单个.class文件,还可以直接反编译整个.jar文件。.jar文件是Java的归档文件格式,通常包含了多个类文件和其他资源。通过JD-GUI,开发者可以浏览并理解整个库的...

    最新版apktool-2.8.1.jar-更新时间-2023-07-22

    在移动应用开发领域,安卓逆向工程是一个重要的工具集,用于理解应用程序的工作原理、查找漏洞或进行安全分析。其中,`apktool` 是一款广泛使用的开源工具,用于对Android应用(APK)进行反编译。最新的版本为 ...

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

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

    eclipse汉化包

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

    jdk-lib压缩

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

    自定义@Configuration配置类启用开关第二个版本.zip

    - 在Spring Boot中,通常会将@Configuration类放在主程序类所在的包或其子包下,这样Spring Boot自动扫描并加载配置。 2. **@ComponentScan** - 如果配置类需要扫描其他组件或配置类,可以使用`@ComponentScan`...

Global site tag (gtag.js) - Google Analytics