Hi,
ich habe vor aus einem bestehenden *.jar eine Klasse zur Lauzeit nachzuladen, um Funktionen daraus aufzurufen. Also so eine Art PlugIn, da man mein Programm mit einem *.jar mit neuen Funktionen erweitern kann.
Ich habe schon hier und da gesucht und was gefunden und bin hier angelangt (aus einem Forum ein wenig abgewandelt):
Hier wird also, wenn alles erfolgreich war eine Instanz als Object zurückgeliefert, mit dem ich ja eigentlich die Funktionen der Klasse aufrufen könnte.
Doch irgendwie bin ich z.Z. zu blöd oder habe eine Blockade
Ich kann ja jetzt nicht einfach "instance.Methodenname" machen, da ein Objekt vom Typ Object meine Methoden ja nicht kennt. Wie kann ich diese trotzdem aurufen?
Vielen Dank schonmal für eure Hilfe
Gruss
M_Kay
ich habe vor aus einem bestehenden *.jar eine Klasse zur Lauzeit nachzuladen, um Funktionen daraus aufzurufen. Also so eine Art PlugIn, da man mein Programm mit einem *.jar mit neuen Funktionen erweitern kann.
Ich habe schon hier und da gesucht und was gefunden und bin hier angelangt (aus einem Forum ein wenig abgewandelt):
Code:
File fJar = new File(JarFile); //Path of jar file
URL url = null;
try {
//get Jar-Url
url = fJar.toURL();
URLClassLoader urlcl = new URLClassLoader(new URL[] {url});
String strPackage = "abc.moep"; //Package/Class-Name
Class clazz = Class.forName(strPackage, true, urlcl);
//load Constructor (string, string)
Constructor cons = null;
cons = clazz.getConstructor(String.class, String.class);
Object instance = cons.newInstance("", ""); //call constructor
return instance;
}
catch(Exception ex) {
ex.printStackTrace();
return null;
}
Doch irgendwie bin ich z.Z. zu blöd oder habe eine Blockade
Ich kann ja jetzt nicht einfach "instance.Methodenname" machen, da ein Objekt vom Typ Object meine Methoden ja nicht kennt. Wie kann ich diese trotzdem aurufen?
Vielen Dank schonmal für eure Hilfe
Gruss
M_Kay