Reload ResourceBundle

Status
Nicht offen für weitere Antworten.

CK

Aktives Mitglied
Hi,
muss ein Resource Bundle zur Laufzeit neu laden.
Der Code:
Code:
                props = ResourceBundle.getBundle("tmp");
                Class<?> props klass = props.getClass()
                        .getSuperclass();
                Field propsfield = propsklass
                        .getDeclaredField("cacheList");
                propsfield.setAccessible(true);
                sun.misc.SoftCache propscache = (sun.misc.SoftCache) propsfield
                        .get(null);
                propscache.clear();
                propsfield.setAccessible(false);
funktioniert unter Java 1.5 wunderbar, aber sobald ich auf 1.6 umstelle erhalte ich folgende Exception
Code:
java.lang.ClassCastException: java.util.concurrent.ConcurrentHashMap cannot be cast to sun.misc.SoftCache

Wie bekomme ich das hin das der Code unter beiden Java-Versionen läuft?
 

Wildcard

Top Contributor
theoretisch mit einer instanceof Prüfung. Praktisch ist der Code jedoch Mist, weil du auf die Sun Packages nicht zugreifen darfst. Je nach OS, Java Version, Hersteller der JRE,... wird das funktionieren, oder auch nicht.
 

musiKk

Top Contributor
Klassen aus dem sun.* Package sollte man nicht selbst verwenden. Zumindest habe ich das immer gelesen, weil sonst genau solche Dinge passieren, wie dir jetzt: Niemand garantiert, dass die bei Versionsspruengen gleich bleiben oder sich in einer bestimmten Weise veraendern.
 

CK

Aktives Mitglied
Und wie könnte ich das ResourceBundle sauber laden, oder gibts da nur die "Mist"-Variante?
 

Wildcard

Top Contributor
As of Java 6:
http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html#clearCache(java.lang.ClassLoader)
 

CK

Aktives Mitglied
Danke erstmal, aber das würde ja heisen das man erst sauberen Code ab 1.6 nutzen könnte und vorher fuschen muss.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Programm close and reload? Allgemeine Java-Themen 10
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
S URLClassLoader findet ResourceBundle nicht Allgemeine Java-Themen 0
L OOP Wohin mit dem ResourceBundle für Mehrsprachigkeit? Allgemeine Java-Themen 1
H ResourceBundle während Laufzeit bearbeiten Allgemeine Java-Themen 3
E ResourceBundle.getBundle() Problem Allgemeine Java-Themen 6
A Classpath ResourceBundle Problem bzgl. Pfade bzw. Pfade (auch in Eclipse) generell? Allgemeine Java-Themen 7
firefexx ResourceBundle laden Allgemeine Java-Themen 2
U Mehrsprachigkeit mit ResourceBundle Allgemeine Java-Themen 9
R ResourceBundle in Servlets verwenden Allgemeine Java-Themen 13
S ResourceBundle: Locale Datei in Jar finden Allgemeine Java-Themen 3
S Resourcebundle - mehrzeiligen Text erlauben Allgemeine Java-Themen 3
R ResourceBundle-Verständnisproblem Allgemeine Java-Themen 3
P Mehrsprachig programmieren ResourceBundle Allgemeine Java-Themen 6
A ResourceBundle ohne LOCALE funkt nicht. Allgemeine Java-Themen 4
G Tomcat ResourceBundle Allgemeine Java-Themen 7
L Alle Keys eines ResourceBundle Allgemeine Java-Themen 3
T ResourceBundle aus .jar auslesen > MissingResourceExcepti Allgemeine Java-Themen 4
S ResourceBundle findet Resource nicht Allgemeine Java-Themen 4
J ResourceBundle / properties-datei während der Laufzeit verän Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben