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.建议将...
这是因为有时我们可能需要理解别人的代码实现,或者查找某个类或方法的实现细节。Eclipse作为一款强大的Java集成开发环境,提供了多种方式来帮助开发者查看.jar文件中的.class文件源码。本文将详细介绍如何在Eclipse...
查看import的类是出自哪个jar包的方法 Java 中的导入(import)语句是我们日常编程中最常用的语句之一,但是有时候我们需要知道某个类是来自哪个 jar 包的,这篇文章将为大家带来一个查看 import 的类是出自哪个 ...
4. **搜索和查找**: 使用内置的搜索功能,输入关键字查找特定的类或资源。 5. **提取文件**: 如果需要,可以将`jar`文件中的某个或某些文件导出到本地文件系统。 6. **编辑和更新**: 高级的jar查看工具可能允许...
在标题和描述中提到的问题,“myeclipse10 打包时导出war问题解决办法,解压文件夹,替换jar包”,可能是指在打包过程中遇到了某个特定的jar文件冲突或者版本不兼容的情况。这可能是由于以下原因: 1. **依赖冲突**...
3. **搜索**: JD-GUI提供搜索功能,可以在整个JAR文件中查找特定的类、方法或变量。 4. **快速导航**: 通过类继承树和方法调用图,可以快速了解类之间的关系。 5. **代码高亮和折叠**: 支持代码高亮显示,便于阅读,...
3. **显示结果**:查找结果通常会列出匹配的类,包括完整的包名和类名,以及它们所在的文件位置。 4. **高级选项**:有些Java Class Finder工具可能提供高级选项,比如搜索接口、枚举、注解等,或者按照继承关系、...
默认情况下程序会去系统的注册表,环境变量及相关的目录查找 jre,因为我们只需要自带的 jre,所以这里我把默认的选项移除了,然后添加我们自己的 jre 所在的目录路径,点+号开始:这里还是建议使用相对的目录路径:...
汉化包的使用不仅限于初学者,即便是经验丰富的开发者,有时也会因为某个特定的术语或功能名称而感到困惑,此时汉化包就能提供很大的帮助。不过,值得注意的是,尽管汉化包可以极大地改善用户体验,但并非所有的插件...
当程序需要使用某个类时,ClassLoader会查找对应的字节码文件,将其加载到JVM中。`rt.jar`中的类通常会被BootClassLoader加载,而其他库则由ExtensionClassLoader和AppClassLoader依次加载。 四、使用lib中的库 在...
2. **检查类路径**:确保`JavaMail`相关的JAR文件(如`javax.mail.jar`和`activation.jar`)以及`com.sun.mail.util`包所在的JAR(通常是`mailapi.jar`)被添加到了项目的类路径中。在IDE如Eclipse或IntelliJ中,...
名字的局部变量,就使用该变量,如果不存在,则到该方法所在的内部类中查找是否存在该名字的属性,如果存在 则使用该属性。 •总之,第一步先找局部变量,第二步,内部类的属性,第三步。外部类的属性。 ...
3. 打开命令行终端(在Windows上通常是cmd.exe),定位到QRe-V0.2.jar所在的目录。 4. 输入命令 `java -jar QRe_V0.2.jar`,然后按回车键执行。这里的`-jar`参数指定运行的是一个jar文件,而`QRe_V0.2.jar`则是我们...
5. **搜索功能**:内置的搜索工具允许你快速查找特定的类、方法或字符串。 使用JD-GUI时,你需要确保以下几个关键知识点: - **Java字节码**:了解Java字节码的基本概念,它是Java源代码编译后的产物,可以在任何...
4. **搜索功能**:内置的搜索功能允许用户快速查找特定的类、方法或字符串。 5. **调试辅助**:对于调试过程中的问题,JD-GUI能帮助开发者理解被调用的方法和执行路径。 在实际应用中,JD-GUI可以用于: - **逆向...
2. 调试问题:当遇到某个库的使用问题,但又没有源码时,反编译可以帮助我们分析库的内部行为,找出问题所在。 3. 代码逆向工程:在软件安全领域,逆向工程是重要的手段,通过反编译了解程序的工作原理,检测潜在的...
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始...