Hallo an Alle,
ich habe ein Problem mit dem ResourceBundle. Und zwar habe ich ein Programm geschrieben und wollte das dies in mehreren Sprachen verfügbar ist. Nun habe ich die "Externalize" Funktion von Eclipse genutzt mit der die ganzen Strings, in eine Properties Datei, ausgelagert werden.
Nun funktioniert mein Programm bestens unter Eclipse. Mach ich aber ein Build per Ant, so wird die folgende Exception geworfen.
Code:
Exception in thread "main" java.lang.ExceptionInInitializerError
at client.gui.MainWindow.initComps(Unknown Source)
at client.gui.MainWindow.<init>(Unknown Source)
at client.Controller.init(Unknown Source)
at client.StartClient.main(Unknown Source)
Caused by: java.util.MissingResourceException: Can't find bundle for base name languages\messages, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at shared.util.Language.<clinit>(Unknown Source)
... 4 more
Mein Klasse, welche von Eclipse erstellt wurde und die Strings zur Verfügung stellt ist die folgende:
Code:
public class Language {
private static final String BUNDLE_NAME = "languages\\messages"; //$NON-NLS-1$
private static ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private Language() {
}
public static String getString(String key) {
try {
return RESOURCE_BUNDLE.getString(key);
} catch (MissingResourceException e) {
return '!' + key + '!';
}
}
}
Vielleicht noch meine Ordnerstruktur nach dem Build:
Code:
\root
- Main.jar
- start.bat
-\lib
- Jar Libraries
- \languages
- messages.properties
- messages_de.properties
Was mache ich falsch? Ich hoffe Ihr könnt mir helfen.
Danke schonmal im voraus.
Lesezeichen