阅读更多
//功能:在指定的路径中的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");
}
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有