java.util.MissingResourceException: Can ' T find bundle for base name
Teste ich Java i18n-Funktionen und habe ein problem, ich kann nicht laden Sie die language-Datei, wenn es nicht in der Klasse root. Jetzt meine Dateien sind in der /lang
Verzeichnis.
Sah mehrere Antworten hier in SO, dass es in einem classes
subdir und laden es wie lang.Messages
, verwendet gesamte location-routing - /Test/lang/Message
(der test ist der Projekt-name), mit nur /lang/Message
und immer noch bin ich das:
java.util.MissingResourceException: Can't find bundle for base name
Fehler.
Etwas anderes zu versuchen?
Meine Datei-Struktur ist:
Test/lang/Messages_es.properties
Test/src/test/Main.java
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) {
Locale currentLocale;
ResourceBundle messages;
currentLocale = new Locale("es");
messages = ResourceBundle.getBundle("Messages", currentLocale);
System.out.println(messages.getString("Messagesgreetings"));
System.out.println(messages.getString("Messagesinquiry"));
System.out.println(messages.getString("Messagesfarewell"));
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie Ihre locale-Namen in der properties-Datei name.
Benennen Sie Ihre Datei Eigenschaften zu
Messages_es.properties
Da Sie noch nicht erklärt jedes Paket, das sowohl die kompilierte class-Datei und die Datei-Eigenschaften können in das gleiche root-Verzeichnis.
BEARBEITEN in Reaktion auf die Kommentare:
Können sagen, Sie haben dieses Projekt Struktur:
test\src\foo\Main.java
(foo
ist der Paket-name)test\bin\resources\Messages_es.properties
(properties-Datei wird in den Ordnerresources
in Ihrem classpath)Können Sie dies ausführen mit:
Aktualisierten source code:
Hier, wie Sie sehen, sind wir das laden der properties-Datei mit dem Namen "Ressourcen.Nachrichten"
Hoffe, das hilft.