Я потратил некоторое время, пытаясь загрузить файл свойств, и не смог найти ни одного работающего решения.Вот изображение моей настройки.
Расположение файла свойств: /sandbox/resources/properties/MessageBundle_en_US.properties
Расположение приложения: / sandbox / src / main / java / com / app /sandbox / app.java
Не уверен, что происходит.Я пробовал несколько комбинаций, но это не может пройти мимо исключения.Я даже попробовал весь путь к папке.Может кто-нибудь сказать мне, как метод ResourceBundle.getBundle () ищет файлы свойств?
ОБНОВЛЕНИЕ 1: Это решение перестало работать несколько минут спустя:
ResourceBundle mybundle = ResourceBundle.getBundle("MessageBundle");
ОБНОВЛЕНИЕ 2: Приведенное выше решение больше не работало во время моего последнего запуска.Поэтому я изменил его на:
ResourceBundle mybundle = ResourceBundle.getBundle("properties/MessageBundle");
И это сработало.Кажется, может быть проблема с кэшированием того, как ResourceBundle ищет файл свойств.
Я до сих пор не уверен, как класс ResourceBundle выглядит для файла свойств.В нем говорится передать параметр "baseName":
baseName - the base name of the resource bundle, a fully qualified class name
https://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String)
Но не ясно, как он начинает искать файлы.Начинает ли он искать из корня каталога проекта?Если кто-то может ответить на это, было бы хорошо.Что это означает под полностью определенным именем класса .Я не думаю, что «properties.MessageBundle» полностью квалифицирован.