`

查找某个类所在jar包

 
阅读更多
  1. package com.test;  
  2.   
  3. import java.io.File;  
  4. import java.util.ArrayList;  
  5. import java.util.Enumeration;  
  6. import java.util.List;  
  7. import java.util.zip.ZipEntry;  
  8. import java.util.zip.ZipFile;  
  9.   
  10. public class FindInJar {  
  11.   
  12.     public String className;  
  13.        
  14.     public ArrayList jarFiles = new ArrayList();  
  15.    
  16.     public FindInJar() {  
  17.     }  
  18.    
  19.     public FindInJar(String className) {  
  20.         this.className = className;  
  21.     }  
  22.    
  23.     public void setClassName(String className) {  
  24.         this.className = className;  
  25.     }  
  26.    
  27.     public List findClass(String dir, boolean recurse) {  
  28.         searchDir(dir, recurse);  
  29.         return this.jarFiles;  
  30.     }  
  31.    
  32.     protected void searchDir(String dir, boolean recurse) {  
  33.         try {  
  34.             File d = new File(dir);  
  35.             if (!d.isDirectory()) {  
  36.                 return;  
  37.             }  
  38.             File[] files = d.listFiles();  
  39.             for (int i = 0; i < files.length; i++) {  
  40.                 if (recurse && files[i].isDirectory()) {  
  41.                     searchDir(files[i].getAbsolutePath(), true);  
  42.                 } else {  
  43.                     String filename = files[i].getAbsolutePath();  
  44.                     if (filename.endsWith(".jar")||filename.endsWith(".zip")) {  
  45.                         ZipFile zip = new ZipFile(filename);  
  46.                         Enumeration entries = zip.entries();  
  47.                         while (entries.hasMoreElements()) {  
  48.                             ZipEntry entry = (ZipEntry) entries.nextElement();  
  49.                             String thisClassName = getClassName(entry);  
  50.                             if (thisClassName.equals(this.className) || thisClassName.equals(this.className + ".class")) {  
  51.                                 this.jarFiles.add(filename);  
  52.                             }  
  53.                         }  
  54.                     }  
  55.                 }  
  56.             }  
  57.         } catch (Exception e) {  
  58.             e.printStackTrace();  
  59.         }  
  60.     }  
  61.    
  62.     public List getFilenames() {  
  63.         return this.jarFiles;  
  64.     }  
  65.    
  66.     protected String getClassName(ZipEntry entry) {  
  67.         StringBuffer className = new StringBuffer(entry.getName().replace('/','.'));  
  68.         return className.toString();  
  69.     }  
  70.    
  71.     public static void main(String args[]) {  
  72.     //要查找的类  
  73.         FindInJar findInJar = new FindInJar("com.util.BaseUtil");  
  74.     //jar包所在的位置  
  75.         List jarFiles = findInJar.findClass("E:/workspace/test/WEB-INF/lib"true);  
  76.         if (jarFiles.size() == 0) {  
  77.             System.out.println("Not Found");  
  78.         } else {  
  79.             for (int i = 0; i < jarFiles.size(); i++) {  
  80.                 System.out.println(jarFiles.get(i));  
  81.             }  
  82.         }  
  83.     }  
  84.   
  85. }  
分享到:
评论

相关推荐

    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