Tôi đang thử nghiệm các tính năng i18n của Java và gặp sự cố, tôi không thể tải tệp ngôn ngữ khi không có trong lớp gốc. Hiện tại, các tệp của tôi nằm trong thư mục /lang
.java.util.MissingResourceException: Không thể tìm thấy gói cho tên cơ sở
Nhìn vài câu trả lời ở đây trong SO, đặt nó trong một subdir classes
và tải nó như lang.Messages
, được sử dụng hoàn toàn vị trí tuyến /Test/lang/Message
(thử nghiệm là tên dự án), chỉ sử dụng /lang/Message
và vẫn Tôi nhận được:
java.util.MissingResourceException: Can't find bundle for base name
lỗi.
Bất kỳ điều gì khác để thử?
cấu trúc tập tin của tôi là:
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"));
}
}
Tôi có tên địa phương trong tên tệp. Tôi KHÔNG muốn có cả hai tệp trong cùng một thư mục gốc, đó là toàn bộ vấn đề ở đây: ( –
Đường dẫn của tôi là: Kiểm tra/lang/Messages_es.properties Kiểm tra/src/test/Main.java Thay vì chạy java-classpath. \ bin foo.Main tôi đặt nó vào cài đặt dự án, không may mắn. –
Hoặc sao chép thư mục lang của bạn vào thư mục đầu ra của dự án của bạn hoặc nếu bạn sử dụng Eclipse sao chép thư mục lang của bạn dưới src thì nó sẽ tự động được biên dịch vào thư mục đầu ra của bạn và tải gói với tên lang.Messages –