我正在測試Java的i18n功能並出現問題,當它不在類根目錄下時,我無法加載該語言文件。現在我的文件位於/lang
目錄中。java.util.MissingResourceException:無法找到基本名稱的包
這裏看着幾個答案在SO,把它在一個classes
子目錄並加載它像lang.Messages
,使用完整的位置路由/Test/lang/Message
(測試項目名稱),只使用/lang/Message
和我依然得到:
java.util.MissingResourceException: Can't find bundle for base name
錯誤。
還有什麼可嘗試的嗎?
我的文件結構是:
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"));
}
}
我有文件名中的本地名稱。 我不想在同一個根目錄下兩個文件,這裏是整個問題:( – 2010-08-01 18:46:04
我的路徑是這樣的: 測試/郎/ Messages_es.properties 測試/ src目錄/測試/ Main.java 代替運行java -classpath。\ bin foo.Main我將其設置爲項目設置,沒有運氣。 – 2010-08-01 20:02:41
將lang文件夾複製到項目的輸出文件夾中,或者如果您使用Eclipse在src下複製lang文件夾,那麼它將自動編譯到您的輸出文件夾中並使用名稱lang.Messages加載該包 – 2010-08-02 10:52:18