Accueil > Java > Get classes contained in a package

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);
    }
}

Java

Les commentaires sont fermés.