//功能:在指定的路径中的Jar文件中寻找自己所需要的class
//用法:提供本地磁盘路径和所需要的class的全称(包括package等信息)
//例如:Java -cp . JarClassFind Path ClassName
//eg: Java -cp . JarClassFind F:\JDK java.applet.Applet
import java.io.File;
import java.util.Enumeration;
import java.util.jar.JarFile;
public class JarClassFind
{
public static int count = 0;
public JarClassFind()
{
}
private static void findClassInLocalSystem(String path, String classname)
{
if ((path.charAt(path.length() - 1)) != File.separatorChar)
{
path += File.separatorChar;
}
File file = new File(path);
if (!file.exists())
{
System.out.println("Error: Path not Existed! Please Check it out!");
return;
}
String[] filelist = file.list();
if (filelist != null)
{
for (int i = 0; i < filelist.length; i++)
{
File temp = new File(path + filelist[i]);
if ((temp.isDirectory() && !temp.isHidden() && temp.exists()))
{
findClassInLocalSystem(path + filelist[i], classname);
}
else
{
if (filelist[i].endsWith(".jar"))
{
try
{
JarFile jarfile = new JarFile(path + filelist[i]);
for (Enumeration enumeration = jarfile.entries(); enumeration.hasMoreElements();)
{
String name = enumeration.nextElement().toString();
if (name.equals(classname))
{
System.out.print("No." + ++JarClassFind.count);
System.out.println("\t" + path + filelist[i]);
// System.out.println(name);
}
}
jarfile.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
}
}
else
{
System.out.println("File list is null or Permission denied, please check : " + path);
}
}
public static void main(String[] args)
{
System.out.print("You are searching Java Class on: " + System.getProperty("os.name"));
System.out.println("\t\tFile.separator is : " + File.separator);
if (args.length < 2)
{
showHowToUsage();
return;
}
String absoluteclassname = args[1].replace('.', '/') + ".class";
System.out.println("Find class [" + args[1] + "] in Path [" + args[0] + "] Results:");
findClassInLocalSystem(args[0], absoluteclassname);
if (JarClassFind.count == 0)
{
System.out.println("Error:Can't Find Such Jar File!");
}
System.out.println("Find Process Ended! Total Results:" + JarClassFind.count);
}
private static void showHowToUsage()
{
System.out.println("Usage: Java -cp . JarClassFind <source path> <source class name>");
System.out.println("Usage: Java -classpath . JarClassFind <source path> <source class name>");
System.out.println("");
System.out.println("<source path>:\t\tPath to Find eg:F:\\JDK");
System.out.println("<source class name>:\tClass to Find eg:java.applet.Applet");
}
}
分享到:
相关推荐
当我们需要在众多`jar`包中寻找特定的`.class`文件时,这通常是一项繁琐的任务。为了简化这一过程,可以使用名为`JarSearchFile`的工具或方法来高效地定位所需文件。 `JarSearchFile`可能是一个命令行工具或者库,...
在上述代码中,我们创建了一个`CustomClassLoader`,它接受一个jar文件作为输入,然后在`findClass()`方法中遍历jar文件中的所有条目,寻找匹配的类并加载。 有了自定义类加载器,接下来就可以动态地加载和执行外部...
在运行JAR文件时,需要确保环境变量中包含了对应的`java`命令路径,或者手动指定完整路径。 #### 结论 解决Eclipse导出的JAR文件无法打开的问题,关键在于仔细检查主类的选择、依赖库的打包方式以及文件路径的配置...
在Java开发过程中,有时我们需要查看已编译的`.class`文件来理解代码的执行逻辑,尤其是在遇到异常或问题时,查看字节码有助于排查问题。Eclipse作为一个强大的Java集成开发环境,本身并不直接支持查看`.class`文件...
在Java编程中,有时我们需要动态地加载外部JAR文件,并执行其中特定的类方法,这在插件系统、模块化应用或动态扩展性需求中尤为常见。本篇将详细讲解如何实现这一目标。 首先,理解JAR(Java Archive)文件是Java...
JAR文件的使用在Java开发中扮演着至关重要的角色,因为它允许开发者将多个类文件打包成一个单一的可执行文件,从而方便了代码的管理和分发。 JAR包的核心特点: 1. **压缩**:JAR文件实质上是一个ZIP格式的压缩...
类路径可以通过`java.class.path`系统属性或者在启动Java应用时通过`-cp`或`-classpath`选项指定。 4. **匹配JAR文件**:对于每个JAR文件,工具会打开它,读取MANIFEST.MF文件(如果存在)以及每个包含类的`.class`...
- 在jar文件中,类的路径由`package/ClassName.class`格式表示,例如`com/example/MyClass.class`。 - `java.util.jar.JarFile`类用于读取和操作jar文件,可以获取jar内的条目及其路径。 - 运行jar文件时,可以...
在Java开发中,常常需要将多个类和库合并成一个可执行的JAR文件,以便于分发和运行。这时,fatjar插件就显得尤为重要。fatjar,全称为“fat JAR”,指的是包含所有依赖库的大型JAR文件,使得用户无需额外安装依赖就...
在Java开发中,JAR文件是一个集合,它包含类文件、相关的元数据和其他资源,使得它们可以作为一个单一的可分发单元。JAR文件的主要用途包括:减少网络传输的数据量、提高加载速度、实现代码封装和版本控制等。 **1....
在Java编程环境中,`jar`(Java Archive)文件是一种打包工具,它将多个类文件、资源文件以及其他元数据集合在一起,便于分发和执行。本文将深入探讨`jar`包中类的加载机制以及如何在Java程序中使用`jar`中的资源。 ...
5. **类路径管理**:在Java命令行中,可以使用 `-classpath` 或 `-cp` 参数指定JAR包的位置,使得JVM知道在哪里寻找所需的类。 6. **运行时合并**:通过`-jar`选项,可以指定主类并直接运行JAR文件,如`java -jar ...
Java解压和jar类查找工具是一种实用的开发辅助软件,尤其在处理大量jar包和zip文件时,能够高效地定位到所需的class文件。这个工具基于Java编程语言开发,支持在Linux和Windows操作系统环境下运行,其核心功能是通过...
当执行`java`命令时,JVM会遍历类路径中的所有目录和JAR文件来寻找所需的类。 在直接运行一个类(如`java HelloWorld`)时,JVM会从当前目录(".")开始查找对应的类文件。如果类有包,JVM会根据包结构在相应目录下...
jar文件是Java平台特有的归档格式,它将多个类文件和其他资源打包在一起,方便在Java应用程序中分发和使用。在Java项目中,尤其是服务器端应用,jar包是代码复用和模块化的重要手段。 对于这52个jar包的寻找过程,...
它的工作原理可能是通过遍历指定路径下的所有jar文件,然后对比每个jar中的类文件,找出具有相同全限定名(即包括包名和类名)但内容不同的类,从而确定冲突的存在。 `CallJars.exe` 可能是该工具的执行文件,它是...
然而,为了更有效地管理和运行JAR文件,我们需要自定义MANIFEST.MF文件,特别是添加`Main-Class`属性,这指定了JAR文件中的主类,使得通过`java -jar`命令就能直接启动应用程序。 创建和编辑MANIFEST.MF文件可以...
这可能意味着寻找替代的JAR文件、查阅相关文档,或者在社区论坛上寻求帮助。确保查看开发者文档、官方API指南或者开源项目的GitHub页面来获取更多信息。 6. **MANIFEST.MF**:在导入和使用JAR包时,MANIFEST.MF文件...
手动安装则需要下载插件的.jar文件,然后通过Eclipse的"Help" > "Install New Software" > "Add" > "Archive"来添加并安装。 5. **插件的配置与使用** 安装完成后,通常需要重启Eclipse以使插件生效。对于查看类...
在Java开发中,类路径(Classpath)是一个至关重要的概念,它是Java虚拟机(JVM)寻找类文件的路径。当遇到大型项目或者模块化工程时,类路径问题可能会变得复杂,导致运行时找不到所需的类。"ClassFinder"工具正是...