Hallo,
ich möchte folgendes machen.
Im ersten Schritt (um den es geht) möchte ich jar-Files nach Klassen durchsuchen, die ein bestimmtes Interface implementieren. Ich möchte nur wissen, welche Klassen das machen. Egal ob als Class- oder String-Liste. Invoken will ich sie erst viel später.
Ich versuche eine Klasse, die mir durch Entzippen des Jars namentlich bekannt ist mit URLClassLoader zu laden:
Dann möchte ich sowas machen:
Der Classloader läd die Klasse.
Leider ist das Classobjekt bis auf den Namen leer. Kein Feld scheint gesetzt zu sein, wie inspizieren zeigt. Daher gehen Abfragen wie isAssignableFrom() immer schief. Auch das Array der Interfaces (klasse.getInterfaces()) ist leer.
Was mache ich falsch, vergessen ich? Und wie wäre es richtig. Danke.
Gruß Thomas
ich möchte folgendes machen.
Im ersten Schritt (um den es geht) möchte ich jar-Files nach Klassen durchsuchen, die ein bestimmtes Interface implementieren. Ich möchte nur wissen, welche Klassen das machen. Egal ob als Class- oder String-Liste. Invoken will ich sie erst viel später.
Ich versuche eine Klasse, die mir durch Entzippen des Jars namentlich bekannt ist mit URLClassLoader zu laden:
Java:
final URLClassLoader cl = new URLClassLoader(jarUrls.toArray(new URL[jarUrls.size()]));
final Class<?> klasse = cl.loadClass(className);
Dann möchte ich sowas machen:
Java:
if (klasse.isAssignableFrom(base)) ...
Der Classloader läd die Klasse.
Leider ist das Classobjekt bis auf den Namen leer. Kein Feld scheint gesetzt zu sein, wie inspizieren zeigt. Daher gehen Abfragen wie isAssignableFrom() immer schief. Auch das Array der Interfaces (klasse.getInterfaces()) ist leer.
Was mache ich falsch, vergessen ich? Und wie wäre es richtig. Danke.
Gruß Thomas