Hi,
Ich habe nun nach der Modularisierung meines Programmes das Problem, dass ich Klassen beim Starten meines Programmes laden muss/kann.
Das Problem ist folgendes: Ich habe in einem speziellen Konfig-Verzeichnis .class oder .jar Dateien mit Erweiterungen für mein Programm. Nun soll mein Programm mithilfe eines URLClassLoaders diese Extra-Module laden können.
Die Schwierigkeite dabei: Ich müsste irgendwie feststellen können auf welche Klassen der ClassLoader Zugriff hat damit ich jede einzelne durchprüfen kann, ob es ein Modul für mein Programm ist und es somit geladen werden kann.
Auf diese Art und Weise vermeide ich eine Registry da sonst die zusätzlichen Module registriert werden müssten doch nach dem mein Programm auf dem prinzip "dynamisch" erweiterbar basiert, ist die Lösung mit einer Registry eher nicht interessant.
Ganz super wäre, wenn ich irgendwie dem ClassLoader sagen könnte: "Lade alle Klassen vom Typ XYZ und gib sie mir als Array zurück".
Falls sich wer nicht vorstellen kann was ich meine: Es geht bei diesem Problem um Visualisierungen für meinen MediaPlayer und diversen anderen Modulen die geladen werden müssten. Allerdings weiß man bei Erweiterungen ja nicht, wie die Klasse genau heißt, ich weiß lediglich dass alle Module von "Visualisierung" abgeleitet sind.
Hätte wer einen Lösungsvorschlag? Ich komm auf keine brauchbare Lösung. :bahnhof:
Ich habe nun nach der Modularisierung meines Programmes das Problem, dass ich Klassen beim Starten meines Programmes laden muss/kann.
Das Problem ist folgendes: Ich habe in einem speziellen Konfig-Verzeichnis .class oder .jar Dateien mit Erweiterungen für mein Programm. Nun soll mein Programm mithilfe eines URLClassLoaders diese Extra-Module laden können.
Die Schwierigkeite dabei: Ich müsste irgendwie feststellen können auf welche Klassen der ClassLoader Zugriff hat damit ich jede einzelne durchprüfen kann, ob es ein Modul für mein Programm ist und es somit geladen werden kann.
Auf diese Art und Weise vermeide ich eine Registry da sonst die zusätzlichen Module registriert werden müssten doch nach dem mein Programm auf dem prinzip "dynamisch" erweiterbar basiert, ist die Lösung mit einer Registry eher nicht interessant.
Ganz super wäre, wenn ich irgendwie dem ClassLoader sagen könnte: "Lade alle Klassen vom Typ XYZ und gib sie mir als Array zurück".
Falls sich wer nicht vorstellen kann was ich meine: Es geht bei diesem Problem um Visualisierungen für meinen MediaPlayer und diversen anderen Modulen die geladen werden müssten. Allerdings weiß man bei Erweiterungen ja nicht, wie die Klasse genau heißt, ich weiß lediglich dass alle Module von "Visualisierung" abgeleitet sind.
Hätte wer einen Lösungsvorschlag? Ich komm auf keine brauchbare Lösung. :bahnhof: