Klassen finden / ClassPath durchsuchen

benhaze

Mitglied Platinum
Hallo allerseits!

Auch ich habe bereits die Suchfunktion benutzt, aber leider nichts gefunden....
Naja....
Kennt jemand von euch eine Möglichkeit nach Klassen im aktuellen ClassPath zu suchen, die ein bestimmtes Iface implementieren?
(Habe hier schon etwas von Discovery gelesen (Jakarta), komme damit aber irgendwie nicht ganz klar, da die Doku bzw die *best practices* nicht sehr transparent sind...)

Konkret geht es mir um folgendes:
In meinem ClassPath befinden sich *zusätzlich* einige LookAndFeel Jar's.
Nun möchte ich die entsprechenden Klassen aus den Jars (welche javax.swing.LookAndFeel implementieren) gerne auch irgendwie finden.

Nen Tipp wäre SUUPER (bevor ich jetzt anfange mir selber etwas zu stricken)!
Dankeschön.
-Ben
 
Moin!
Das Jakarta Discovery kenn ich jetzt nicht und kann dir dazu auch nichts sagen...
Ich erkläre dir daher mal, wie man es händisch machen könnte...

Über System.gerProperty("java.class.path")
bekommst du alle Verzeichnisse und jar Files welche sich im Klassenpfad befinden, per Semikolon getrennt.
Alle Datein in dem Verzeichnis bekämmst du dann beispielsweise so:
Code:
File[] files = new File("pfad zum Verzeichnis").listFiles();
bzw. wenn es sich um ein jar- Archiv handelt ungefähr so:
Code:
for(Enumeration e = new JarFile(new File("myJar.jar")).entries(); e.hasMoreElements(); )
            System.out.println(e.nextElement());
}

Somit hast du dann zumindest mal die Klassennamen...
Nun bekommst du mit
Code:
(Class.forName(className).getInterfaces()
alle Interfaces, die von einer Klasse implementiert werden.. Und nun kannst du überprüfen, ob das gewünschte Interface dabei ist...
Hoffe mal das hilft...

*grüssle*
MeinerEiner
 
Zurück