Как использовать URLClassLoader для загрузки файла * .class?

Я играю с Reflection и думал, что сделаю что-то, что загрузит класс и напечатает имена всех полей в классе. Я сделал небольшой класс типа «привет», чтобы было что проверить:

kent@rat:~/eclipsews/SmallExample/bin$ ls
IndependentClass.class
kent@rat:~/eclipsews/SmallExample/bin$ java IndependentClass 
Hello! Goodbye!
kent@rat:~/eclipsews/SmallExample/bin$ pwd
/home/kent/eclipsews/SmallExample/bin
kent@rat:~/eclipsews/SmallExample/bin$ 

На основании вышеизложенного я делаю два вывода:

Он существует в /home/kent/eclipsews/SmallExample/bin/IndependentClass.classОно работает! (Так что это должен быть правильный .class-файл, который может быть загружен загрузчиком классов)

Затем код, который должен использовать Reflection: (отмечена строка, которая вызывает исключение)

import java.lang.reflect.Field;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;

public class InspectClass {
    @SuppressWarnings("unchecked")
    public static void main(String[] args) throws ClassNotFoundException, MalformedURLException {
        URL classUrl;
        classUrl = new URL("file:///home/kent/eclipsews/SmallExample/bin/IndependentClass.class");
        URL[] classUrls = { classUrl };
        URLClassLoader ucl = new URLClassLoader(classUrls);
        Class c = ucl.loadClass("IndependentClass"); // LINE 14
        for(Field f: c.getDeclaredFields()) {
            System.out.println("Field name" + f.getName());
        }
    }
}

Но когда я запускаю его, я получаю:

Exception in thread "main" java.lang.ClassNotFoundException: IndependentClass
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at InspectClass.main(InspectClass.java:14)

Мои вопросы:

Что я делаю не так выше? Как мне это исправить?Есть ли способ загрузить несколько файлов классов и перебрать их?

Ответы на вопрос(4)

Ваш ответ на вопрос