Widziałem kilka odpowiedzi dotyczących ładowania konkretnego pliku w słoiku poprzez getResourceAsStream, i mogę to zarządzać. Jednak mam do czynienia z czymś naprawdę konkretnym, nie mogłem znaleźć odpowiedzi na ten temat na forum.Ładowanie z ResourceBundle z wnętrza słoiczka
Oto konfiguracja:
Mam plik jar o conf katalog, który zawiera 2 właściwości plików messages_en_US.properties i messages_fr_FR.properties. Klasyczny sposób załadować tych zasobów jest użycie
ResourceBundle.getBundle("messages", java.util.Locale.getDefault());
Jeśli pliki są na dysku, w katalogu wskazywanym przez ścieżce klasy programm, to działa prawidłowo. Ale nie wiem, jak mogę zarządzać łączeniem korzystania z ResourceBundle.getBundle i wykorzystania zasobów z słoika. Rzeczywiście, ponieważ nie widzę żadnego mostu przez getResourceAsStream (lub to oznaczałoby zarządzanie lokalizacjami przez siebie, aby określić całą nazwę pliku zasobów, która nie jest zbyt inteligentna).
Czy ktoś może pomóc?
Dzięki.
Skąd masz ten plik w słoiku? jeśli pozostanie w JAR oznacza, że masz go w ścieżce klas i nie powinieneś mieć problemu z załadowaniem go normalnie z ResourceBundle.getBundle – rascio
Mam ten sam problem, mam zasób właściwości wewnątrz pliku jar, ale ten plik JAR jest NIE w ścieżce klas programów.Czytałem javadoc dla PropertyResourceBundle i wiem, że mógłbym to zrobić z inputstream, ale inputstream oznacza IO, że będzie czytał plik za każdym razem i stracę domyślne buforowanie ResourceBundle. Czy istnieje sposób kierowania klasą ResourceBundle, aby uzyskać pakiet z zasobu spoza jego ścieżki klas? –
Również ResourceBundle.Control można zaimplementować w celu dostosowania, ale wydaje się przesadą, lepiej znaleźć sposoby na umieszczenie plików właściwości w ścieżce klas. –