Klassen zur Laufzeit laden und Ausführen?

Smily0412

Mitglied
Hallo,
ich würde mit einem Java-Programm gerne, während es läuft, eine Klasse, deren pfad+namen ich in einem String habe aus dem Dateisystem laden, eine Instanz dieser erzeugen und Methoden ausführen.

(Hintergrund: Ich möchte ein Programm (ausführbare jar) machen, bei dem der Benutzer Module hinzufügen kann, in dem er Class-Dateien herunterläd und über ein front-end auswählt)

Kann man das irgendwie machen?
 
Code:
EigeneKlasse objEigen =
 (EigeneKlasse)this.getClass().getClassLoader().loadClass( "String mit Klassen Pfad und Name ).newInstance();
 
Zuletzt bearbeitet:
Hoi,
Zerix: Bei dem Beispiel in deinem Link wird ja eine Klasse aufgerufen, die schon mit im Projekt drin ist, ich würde die Klasse aber gerne komplett aus einer externen Datei heraus laden.

Matze:
Ich hab das mal ausprobiert, bekomme aber eine "ClassNotFound"-Exception. (Die Datei existiert aber):

Java:
public class Test {
	public Test() throws Exception {
		Engine en = (Engine) this.getClass().getClassLoader().loadClass( "/home/mst/Testengine.class" ).newInstance();
	}
	
	public static void main(String[] args) throws Exception {
		new Test();
	}
}

Edit: ahh ich habs jetzt. Hab gerade entdeckt, dass es eine Klasse "URLClassLoader" gibt und ein wenig damit rumprobiert. thx trotzdem
 
Zuletzt bearbeitet:
ICh geh mal davon aus, dass der Pfad stimmt. Ist diese Klasse vieleicht in einem Package, wenn ja muss du dieses auch angeben wie z.b bei den Import Anweisungen
 
Zurück