How to use getClass().getClassLoader().getResource()

This is the simplest wat to get the File object to which a certain URL object is pointing at:
File file=new File(url.toURI());

Now, for your concrete questions:

•finding all resources in the META-INF "directory":

You can indeed get the File object pointing to this URL
Enumeration<URL> en=getClass().getClassLoader().getResources("META-INF");
if (en.hasMoreElements()) {
    URL metaInf=en.nextElement();
    File fileMetaInf=new File(metaInf.toURI());

    File[] files=fileMetaInf.listFiles();
    //or 
    String[] filenames=fileMetaInf.list();
}

•all resources named bla.xml (recursivly)

In this case, you'll have to do some custom code. Here is a dummy example:
final List<File> foundFiles=new ArrayList<File>();

FileFilter customFilter=new FileFilter() {
    @Override
    public boolean accept(File pathname) {

        if(pathname.isDirectory()) {
            pathname.listFiles(this);
        }
        if(pathname.getName().endsWith("bla.xml")) {
            foundFiles.add(pathname);
            return true;
        }
        return false;
    }

};      
//rootFolder here represents a File Object pointing the root forlder of your search 
rootFolder.listFiles(customFilter);

When the code is run, you'll get all the found ocurrences at the foundFiles List.

********************************************
example:

private static void init() {
URL url = NTGLoggerFactory.class.getClassLoader().getResource(FILE_NAME);
PropertyConfigurator.configure(url);
initialized = true;
}

你可能感兴趣的:(ClassLoader)