I want to know the given class name exists in which jar file? C:\Program Files\IBM\IBMIMShared\plugins in this path around 600 jar files are there. i want to know the name of the jar file where 'com.rational.ft.util.debug' class exists.
Java find the jar of the given class
import java.io.*; import java.util.*; import java.util.jar.*; class OnlyExt implements FilenameFilter{ String ext; public OnlyExt(String ext){ this.ext="." + ext; } public boolean accept(File dir,String name){ return name.endsWith(ext); } } public class FindJar{ private static boolean debug = true; public static void getClasseNamesInPackage(String packageName){ ArrayList classes = new ArrayList(); packageName = packageName.replaceAll("\\." , "/"); if (debug) try{ FilenameFilter ff = new OnlyExt("jar"); File folder = new File("C:/Program Files/Java/jdk1.6.0_20/lib/"); File[] files = folder.listFiles(ff); for(int i=0;i<files.length;i++){ JarInputStream jarFile = new JarInputStream(new FileInputStream (files[i].getPath())); JarEntry jarEntry; while(true) { jarEntry=jarFile.getNextJarEntry (); if(jarEntry == null){ break; } if((jarEntry.getName ().startsWith (packageName)) && (jarEntry.getName ().endsWith (".class")) ) { if (debug) System.out.println ("Found " + jarEntry.getName().replaceAll("/", "\\.")+" in "+files[i].getName()); classes.add (jarEntry.getName().replaceAll("/", "\\.")); } } } } catch( Exception e){ e.printStackTrace (); } } public static void main (String[] args){ FindJar.getClasseNamesInPackage("org.jfree.chart.ChartFactory"); } }