ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
562
562
EMPFEHLEN
-
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
-
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
-
11.10.08 13:46 #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ß TomJava 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
-
Resource über den ClassLoader laden
Von Tikonteroga im Forum Java GrundlagenAntworten: 4Letzter Beitrag: 09.11.10, 12:22 -
Classloader und anonyme Klassen
Von Germanterminaotr im Forum Java GrundlagenAntworten: 0Letzter Beitrag: 01.02.10, 13:27 -
javax.telephony, TAPI, JTAPI - gleiche Anwedung mehrfach starten, DLL mehrfach laden
Von Animal21 im Forum JavaAntworten: 1Letzter Beitrag: 28.06.09, 08:28 -
classpath mit classloader künstlich erweitern (für Klassen)
Von kutmonch im Forum JavaAntworten: 2Letzter Beitrag: 18.08.08, 09:16 -
Eclipse Plugin findet externe Klassen nicht. Ev. OSGI Classloader Problem?
Von kieste im Forum JavaAntworten: 1Letzter Beitrag: 24.09.07, 22:51





Zitieren

Login





