Grupy dyskusyjne Google nie obsługują już nowych postów ani subskrypcji z Usenetu. Treści historyczne nadal będą dostępne.

ResourceBundle Verständnisprobleme

1 wyświetlenie
Przejdź do pierwszej nieodczytanej wiadomości

tranquility

nieprzeczytany,
24 sie 2005, 12:55:4224.08.2005
do
Hallo zusammen,

ich habe da ein kleines Problem mit dem ResourceBundle. Ich habe eine
guitext.properties und eine guitext_en.properties. Mittels folgender
Methode
möchte ich Strings aus der passenden Datei holen.


public static String getString(String key){
String cRet;
ResourceBundle myTrans;

try {
myTrans = ResourceBundle.getBundle("guitext");
cRet=myTrans.getString(key);
return cRet;
} catch (Exception ex) {
return null;
}
} //public String getString(String key)


Es wird immer eine Exception geworfen, weil er die guitext_de_DE sucht.
Soweit
ich weiß müsste er doch erstmal eine guitext_de und danach eine
guitext suchen.
Erst dann sollte doch eigentlich eine Exception geworfen werden.

Kann mir bitte jemand erklären was ich hier falsch mache? Vielen Dank
im
Vorraus.

MfG
tranquility

Ralf Ullrich

nieprzeczytany,
24 sie 2005, 13:12:1324.08.2005
do
tranquility wrote:
> Hallo zusammen,
>
> ich habe da ein kleines Problem mit dem ResourceBundle. Ich habe eine
> guitext.properties und eine guitext_en.properties. Mittels folgender
> Methode
[...]

> Kann mir bitte jemand erklären was ich hier falsch mache? Vielen Dank
> im
> Vorraus.

1. Fehler: "Voraus" nur mit einem R ;-)

2. Ich kann nur vermuten, dass deine properties files im falschen
Verzeichnis liegen. Habe das Ganze hier gerade probiert und wie zu
erwarten war funzt es:

Datei <$SRC>/de/comp/lang/java/ResourceBundleDemo.java:
package de.comp.lang.java;

import java.util.ResourceBundle;

public class ResourceBundleDemo {

public static void main(String... args) {
ResourceBundle bundle = ResourceBundle.getBundle("rbdemo");
System.out.println(bundle.getString("bundlefile"));
}

}
EOF

Datei <$SRC>/rbdemo.properties:
bundlefile=rbdemo.properties
EOF

Datei <$SRC>/rbdemo_en.properties:
bundlefile=rbdemo_en.properties
EOF

Ausgabe des Programms:
rbdemo.properties
EOO

Ausgabe wenn ich rbdemo.properties lösche:
Exception in thread "main" java.util.MissingResourceException: Can't
find bundle for base name rbdemo, locale de_DE
at
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:837)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:806)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:550)
at de.comp.lang.java.ResourceBundleDemo.main(ResourceBundleDemo.java:8)
EOO

Die Fehlermeldung sagt _nicht_, dass er nach rbdemo_de_DE.properties
sucht, sondern, dass er nach "rbdemo" sucht und dabei die Locale de_DE
verwendet um (zunächst) nach sprachspezifischen Versionen zu suchen.


3. Meine Vermutung: Deine guitext.properties liegt im selben Verzeichnis
wie die Klasse, aber deine Klasse ist _nicht_ im default-Package. Richtig?

cu

tranquility

nieprzeczytany,
24 sie 2005, 14:55:4124.08.2005
do
Hallo,

> 1. Fehler: "Voraus" nur mit einem R ;-)

Das kann mal vorkommen, nicht wahr?

> 3. Meine Vermutung: Deine guitext.properties liegt im selben Verzeichnis
> wie die Klasse, aber deine Klasse ist _nicht_ im default-Package. Richtig?

Das war die Lösung. Unter Angabe der Package-Struktur funktioniert es
prima.

Danke
tranquility

Nowe wiadomości: 0