tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
562
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MichaelW MichaelW ist offline Mitglied
    Registriert seit
    Mar 2004
    Beiträge
    20
    Hallo zusammen,

    Ich speicher die Klassennamen (also package + classname), die in meiner Anwendung verwendet werden können, in einer DB (es handelt sich darum um Klassen, die eine Komponente der Anwendung repräsentieren).
    Nun möchte ich prüfen, ob die Klassennamen, die in der DB liegen, auch "in echt" in meinem Projekt existieren.

    Mein bisheriges Vorgehen was so, dass ich mit Class.forName(className) nach der Klasse suche und wenn eine Exception fliegt weiss ich, dass die Klasse nicht (mehr) da ist (bzw. umbenannt wurde)...

    Nun ist das Problem, dass Class.forName() nach dem ersten Aufruf die Klassen in einem Cache hält. D.h. wenn ich nach der ersten Prüfung testweise eine Klasse lösche, dann findet Class.forName() die Klasse trotzdem, weil sie noch im Cache vorhanden ist.

    Habt ihr eine Idee wie ich das implementieren könnte?

    Gruß
    Micha
     

  2. #2
    Xandro Xandro ist offline - Mistkerl -
    Registriert seit
    Oct 2005
    Beiträge
    255
    Moin,

    vielleicht hilft Dir ja diese Klasse:
    http://java.sun.com/javase/6/docs/ap...assLoader.html

    Zumindest solltest Du damit in der Lage sein, mit findClass oder loadClass die entsprechenden Klassen aufzuspüren.

    Gruß,
    Xan
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    du musst die Klassen immer mit einem neuen ClassLoader (beispielsweise URLCLassLoader) laden wenn du diese mehrfach laden möchtest. Klassen kann man nur implizit entladen lassen (in dem keine Instanzen dieser Klasse mehr existieren, nicht mehr auf diese Klasse verwiesen wird UND der ClassLoader der die Klasse geladen hat gc'ed wurde).

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. Resource über den ClassLoader laden
    Von Tikonteroga im Forum Java Grundlagen
    Antworten: 4
    Letzter Beitrag: 09.11.10, 12:22
  2. Classloader und anonyme Klassen
    Von Germanterminaotr im Forum Java Grundlagen
    Antworten: 0
    Letzter Beitrag: 01.02.10, 13:27
  3. Antworten: 1
    Letzter Beitrag: 28.06.09, 08:28
  4. Antworten: 2
    Letzter Beitrag: 18.08.08, 09:16
  5. Antworten: 1
    Letzter Beitrag: 24.09.07, 22:51