L
Lutz
Gast
Tag zusammen.
Ich bastel gerade an einem Bildbearbeitungsprogramm rum, welches mit Filtermodulen umgehen soll.
Dazu habe ich ein Interface "Modul" geschrieben. Jedes Modul kommt also als eine oder mehrere
Klassen+benötigte Daten daher von denen die Hauptklasse das Interface implementiert.
Nach dem exportieren meiner Anwendung als .jar, läuft die in nem Verzeichniss Test.
Die .class Dateien der Module liegen in nem Verzeichniss "Modul" als Unterverzeichniss von Test.
Will ich die nun per Classloader da reinholen, bekomme ich ständig ne "Class.not.found" Exception.
Die Dateinamen und das Verzeichniss werden aber richtig gefunden. Funktionieren tut das ganze,
wenn ich die Module mit in der .jar eportiere. Das ist aber nicht Sinn und Zweck. Die sollen ja
hinterher nach belieben hinzugefügt werden können.
Hmm....und nun noch ein paar Rahmeninfos und Quellcodeschnipsel:
-die Main liegt im Paket src.core rum
-die Interface-Definition liegt im Paket src.data rum
-die Module schreibe ich momentan in scr.module
-die Modulklassen importieren im wesentlichen nur src.data.Modul
Und nun noch der SourceCode um die Module einzulesen:
Wäre schön wenn da jemand weiterhelfen kann. Bis bald oder gleich hoffe ich ^^
Ich bastel gerade an einem Bildbearbeitungsprogramm rum, welches mit Filtermodulen umgehen soll.
Dazu habe ich ein Interface "Modul" geschrieben. Jedes Modul kommt also als eine oder mehrere
Klassen+benötigte Daten daher von denen die Hauptklasse das Interface implementiert.
Nach dem exportieren meiner Anwendung als .jar, läuft die in nem Verzeichniss Test.
Die .class Dateien der Module liegen in nem Verzeichniss "Modul" als Unterverzeichniss von Test.
Will ich die nun per Classloader da reinholen, bekomme ich ständig ne "Class.not.found" Exception.
Die Dateinamen und das Verzeichniss werden aber richtig gefunden. Funktionieren tut das ganze,
wenn ich die Module mit in der .jar eportiere. Das ist aber nicht Sinn und Zweck. Die sollen ja
hinterher nach belieben hinzugefügt werden können.
Hmm....und nun noch ein paar Rahmeninfos und Quellcodeschnipsel:
-die Main liegt im Paket src.core rum
-die Interface-Definition liegt im Paket src.data rum
-die Module schreibe ich momentan in scr.module
-die Modulklassen importieren im wesentlichen nur src.data.Modul
Und nun noch der SourceCode um die Module einzulesen:
Code:
private Modul[] getModule() {
String[] modulNames = getFileNames(); // die werden korekt gefunden
Modul[] ret = new Modul[modulNames.length];
for (int i = 0; i < modulNames.length; i++) {
System.out.println(modulNames[i]);
Class c = null;
Object o;
try {
c = Class.forName("src.module."+modulNames[i]); //<===== Hier ist jedes Mal Schluss :-(
} catch (ClassNotFoundException e) {
System.out.println("DER FINDET DIE KLASSEN SCHON WIEDER NICHT! AAAAARGH!");
e.printStackTrace();
}
try {
o = c.newInstance();
ret[i] = (Modul) o;
} catch (Exception e) {
}
}
return ret;
}
Wäre schön wenn da jemand weiterhelfen kann. Bis bald oder gleich hoffe ich ^^