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)); } } } }
相关推荐
Eclipse作为一个流行的Java集成开发环境(IDE),提供了丰富的插件来增强其功能,其中"eclips插件,用于查找某个class所在的jar包"就是这样一个实用工具。这个插件名为"com.danikenan.eclipse.classlocator_1.0.8",...
"通过import导入包查找所在jar包工具"是一种实用的解决方案,它能帮助开发者快速定位到所使用的类所在的JAR文件。这个工具通常是一个自定义开发的小程序,它会解析Java源代码,分析import语句,并追踪到对应的JAR...
例如,当遇到某个类的错误或需要了解其来源时,通过此工具可以迅速找到对应的JAR包,进而进行调试或替换操作。 总的来说,"JAR包查找工具"是一个实用的开发辅助工具,它结合了SWT的UI优势,简化了对Java项目中类...
用户可以不用打开Jar包,直接输入路径和要查找的文件即可搜索。 2.列出指定路径下的所有Jar包文件 3.除了对Jar包进行搜索分析外,还可以对zip包进行分析 4.填写搜索路径是最好不要只填写“E:/”根盘目录 5.建议将...
针对这一痛点,“jar包搜索器”应运而生,它是一款专门用于帮助开发者快速查找类所在的JAR包的工具。 #### 主要功能 1. **类名查询**:用户只需输入类名,系统就能自动搜索并显示该类所在的JAR包列表。 2. **JAR包...
这是因为有时我们可能需要理解别人的代码实现,或者查找某个类或方法的实现细节。Eclipse作为一款强大的Java集成开发环境,提供了多种方式来帮助开发者查看.jar文件中的.class文件源码。本文将详细介绍如何在Eclipse...
查看import的类是出自哪个jar包的方法 Java 中的导入(import)语句是我们日常编程中最常用的语句之一,但是有时候我们需要知道某个类是来自哪个 jar 包的,这篇文章将为大家带来一个查看 import 的类是出自哪个 ...
以下是一套详细的排查步骤来帮助你找出是哪个jar包的哪个线程造成了这个问题。 首先,你需要了解CPU资源消耗高的基本监控方法。在Linux系统中,你可以使用`top`命令来查看当前系统中所有进程的资源使用情况。按`...
- **错误排查**:当遇到运行时异常或问题时,如果只有jar包而没有源码,JD-GUI可以帮助查看问题所在的类和方法。 - **逆向工程**:在安全领域,逆向工程是必要的,以理解恶意软件的工作方式或保护自己的软件免受...
4. **搜索和查找**: 使用内置的搜索功能,输入关键字查找特定的类或资源。 5. **提取文件**: 如果需要,可以将`jar`文件中的某个或某些文件导出到本地文件系统。 6. **编辑和更新**: 高级的jar查看工具可能允许...
此外,如果需要指定类路径,可以在运行jar包之前指定-classpath参数,比如: ```shell java -classpath . -jar hello.jar ``` 最后,本知识点还推荐了一些Java的参考手册,如《Thinking in Java中文手册》、《JDK...
在标题和描述中提到的问题,“myeclipse10 打包时导出war问题解决办法,解压文件夹,替换jar包”,可能是指在打包过程中遇到了某个特定的jar文件冲突或者版本不兼容的情况。这可能是由于以下原因: 1. **依赖冲突**...
3. **搜索**: JD-GUI提供搜索功能,可以在整个JAR文件中查找特定的类、方法或变量。 4. **快速导航**: 通过类继承树和方法调用图,可以快速了解类之间的关系。 5. **代码高亮和折叠**: 支持代码高亮显示,便于阅读,...
3. **显示结果**:查找结果通常会列出匹配的类,包括完整的包名和类名,以及它们所在的文件位置。 4. **高级选项**:有些Java Class Finder工具可能提供高级选项,比如搜索接口、枚举、注解等,或者按照继承关系、...
对于标签“jar包反编译”,这意味着JD-GUI不仅可以处理单个.class文件,还可以直接反编译整个.jar文件。.jar文件是Java的归档文件格式,通常包含了多个类文件和其他资源。通过JD-GUI,开发者可以浏览并理解整个库的...
在移动应用开发领域,安卓逆向工程是一个重要的工具集,用于理解应用程序的工作原理、查找漏洞或进行安全分析。其中,`apktool` 是一款广泛使用的开源工具,用于对Android应用(APK)进行反编译。最新的版本为 ...
默认情况下程序会去系统的注册表,环境变量及相关的目录查找 jre,因为我们只需要自带的 jre,所以这里我把默认的选项移除了,然后添加我们自己的 jre 所在的目录路径,点+号开始:这里还是建议使用相对的目录路径:...
汉化包的使用不仅限于初学者,即便是经验丰富的开发者,有时也会因为某个特定的术语或功能名称而感到困惑,此时汉化包就能提供很大的帮助。不过,值得注意的是,尽管汉化包可以极大地改善用户体验,但并非所有的插件...
当程序需要使用某个类时,ClassLoader会查找对应的字节码文件,将其加载到JVM中。`rt.jar`中的类通常会被BootClassLoader加载,而其他库则由ExtensionClassLoader和AppClassLoader依次加载。 四、使用lib中的库 在...
- 在Spring Boot中,通常会将@Configuration类放在主程序类所在的包或其子包下,这样Spring Boot自动扫描并加载配置。 2. **@ComponentScan** - 如果配置类需要扫描其他组件或配置类,可以使用`@ComponentScan`...