Moin,
meine Aufgabenstellung ist, daß ich mit einem Programm aus einem externen JAR Klassen (KlasseA) laden möchte. Desweiteren möchte ich aus dem gleichen JAR Klassen finden, die von KlasseA abgeleitet sind.
Einmal habe ich das Laden der Klasse:
In einer weiteren Methode lade ich die Elternklasse und die zu prüfende Klasse und hoffe daß es paßt. Ich lasse mal das ganze drumrum weg. Ich habe desweiteren noch Methoden, die mir die Klassennamen inkl. Package aus dem Jar-File auslesen und die gehe ich dann in einer Schleife durch und teste jede gegen die Elternklasse.
Beim asSubclass fliegt er mir jetzt aber mit einer ClassCastException raus. Bei "falschen" Klassen korrekt. Aber er tut dies auch bei den "richtigen" Klassen, die wirklich von parentClass abgeleitet sind.
Jemand eine Idee, was ich falsch mache ?
Als ich dieses externe JAR noch komplett mit in meinem Programm drin hatte und den Standard ClassLoader verwendet hatte, hatte das funktioniert.
MFG
speedy
meine Aufgabenstellung ist, daß ich mit einem Programm aus einem externen JAR Klassen (KlasseA) laden möchte. Desweiteren möchte ich aus dem gleichen JAR Klassen finden, die von KlasseA abgeleitet sind.
Einmal habe ich das Laden der Klasse:
Java:
public static Class<?> getClass(String className, String jarFile)
{
Class<?> clazz = null;
File file = new File(jarFile);
try
{
URL[] url = new URL[] { file.toURI().toURL() };
URLClassLoader ucl;
ucl = new URLClassLoader(url);
clazz = ucl.loadClass(className);
}
catch( MalformedURLException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch( ClassNotFoundException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return clazz;
}
In einer weiteren Methode lade ich die Elternklasse und die zu prüfende Klasse und hoffe daß es paßt. Ich lasse mal das ganze drumrum weg. Ich habe desweiteren noch Methoden, die mir die Klassennamen inkl. Package aus dem Jar-File auslesen und die gehe ich dann in einer Schleife durch und teste jede gegen die Elternklasse.
Java:
parentClass = getClass( parentClassName, jarFile );
testClass = getClass( testClassName, jarFile );
Class<?> subClass = testClass.asSubclass( parentClass );
Beim asSubclass fliegt er mir jetzt aber mit einer ClassCastException raus. Bei "falschen" Klassen korrekt. Aber er tut dies auch bei den "richtigen" Klassen, die wirklich von parentClass abgeleitet sind.
Jemand eine Idee, was ich falsch mache ?
Als ich dieses externe JAR noch komplett mit in meinem Programm drin hatte und den Standard ClassLoader verwendet hatte, hatte das funktioniert.
MFG
speedy