Get classes contained in a package
24/03/2010
En Anglais: This is a java code snipplet that retrieve the package’s classes.
In French: Un petit exemple de code java permettant de récupérer les classes contenues dans un package.
public static Class[] getClasses(Package pckg) throws IOException, ClassNotFoundException { // Translate the package name into an absolute path String name = "/" + pckg.getName().replace('.','/'); // Get a File object for the package URL url = Launcher.class.getResource(name); File directory = new File(url.getFile()); if (directory.exists()) { // Get the list of the files contained in the package String[] files = directory.list(); ArrayList vClasses = new ArrayList(); for (int i=0; i<files.length;++i) { // we are only interested in .class files if (files[i].endsWith(".class")) { // removes the .class extension String classname = files[i].substring(0,files[i].length()-6); vClasses.add(Class.forName(pckg.getName()+"."+classname)); } } Class[] classes = new Class[vClasses.size()]; for (int i=0; i<vClasses.size();++i) classes[i] = (Class)vClasses.get(i); return classes; } else { throw new IOException("Invalid directory: "+url); } }