在指定的路径中的Jar文件中寻找自己所需要的class 博客分类: JavaWebSphereMacIBM JavaJDKJarClassFindClassToolkit
程序员文章站
2024-02-15 08:55:52
...
//功能:在指定的路径中的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"); } }