Tôi đã thấy một số câu trả lời liên quan đến cách tải một tệp cụ thể trong một cái bình qua getResourceAsStream và tôi có thể quản lý việc này. Tuy nhiên tôi đang đối mặt với một cái gì đó thực sự cụ thể, tôi không thể tìm thấy câu trả lời về điều này trên diễn đàn.Đang tải với ResourceBundle từ bên trong một cái bình
Dưới đây là cấu hình:
Tôi có một file jar có một conf thư mục chứa 2 thuộc tính tập tin messages_en_US.properties và messages_fr_FR.properties. Cách cổ điển để tải các tài nguyên đó là sử dụng
ResourceBundle.getBundle("messages", java.util.Locale.getDefault());
Nếu các tệp trên đĩa, trong thư mục được tham chiếu bởi đường dẫn lớp chương trình, điều này có tác dụng. Nhưng tôi không biết làm thế nào tôi có thể quản lý kết hợp sử dụng ResourceBundle.getBundle và sử dụng tài nguyên từ witin một cái bình. Thật vậy, vì tôi không thể nhìn thấy bất kỳ cây cầu nào qua getResourceAsStream (hoặc điều này có nghĩa là tự quản lý miền địa phương để chỉ định toàn bộ tên tệp tài nguyên, không phải là rất thông minh).
Có ai giúp được không?
Cảm ơn.
Nơi nào bạn có tập tin đó trong cái lọ? nếu nó nằm trong một JAR có nghĩa là bạn có nó trong classpath và bạn không nên có vấn đề để tải nó bình thường với ResourceBundle.getBundle – rascio
Tôi có cùng một vấn đề, tôi có một tài sản thuộc tính bên trong một tệp jar nhưng tệp jar đó KHÔNG trong classpath của chương trình.Tôi đọc javadoc cho PropertyResourceBundle và tôi biết tôi có thể làm điều đó với inputstream nhưng inputstream có nghĩa là IO nó sẽ đọc tập tin mọi lúc và tôi mất mặc định ResourceBundle caching. Có cách nào để chỉ đạo lớp ResourceBundle để lấy gói từ một tài nguyên nằm ngoài classpath của nó không? –
Ngoài ra ResourceBundle.Control có thể được thực hiện để tùy chỉnh nhưng có vẻ là một quá mức cần thiết, tốt hơn để tìm cách để đặt các tập tin thuộc tính trong classpath này. –