Как получить .properties? - PullRequest
       5

Как получить .properties?

0 голосов
/ 13 ноября 2011

Я занимаюсь разработкой настольного Java-приложения с использованием maven. Я получил файл * .properties, который мне нужно получить во время выполнения (src / resources / application.properties). Единственное, что приходит мне в голову - это использовать:

private Properties applicationProperties;
applicationProperties.load(new BufferedInputStream(new FileInputStream("src/resources/application.properties")));

Это сработало бы, если бы я запускал свое приложение напрямую из IDE. Я хочу сохранить чистоту иерархии выходных данных, поэтому я установил maven для непосредственного копирования папки ресурсов в целевую папку (которая является базовым для выходного приложения). Таким образом, файл application.properties не загружается (поскольку у меня есть target / resources / application.properties, но нет target / src / resources / application.properties).

Каков наилучший способ управления ресурсами, чтобы они работали как при отладке из IDE, так и при непосредственном запуске встроенного файла JAR?

Ответы [ 2 ]

1 голос
/ 13 ноября 2011

Вы должны загрузить файл свойств из пути к классам, а не из явного расположения файловой системы:

 applicationProperties.load(new BufferedInputStream(this.getClass().getResourceAsStream( "/application.properties" );

Пока ваша IDE настроена на включение каталога ресурсов в ваш путь к классам (это должно быть по умолчанию в Maven), это будет работать независимо от того, работаете вы в IDE или нет, так как maven будет копировать ресурсы в правильное место при упаковке вашего архива.

1 голос
/ 13 ноября 2011

Не ожидайте, что файлы будут в папке src - она ​​не существует во время выполнения. Файлы свойств идут в /bin. Но на это тоже не надейся. Потому что FileInputStream принимает только абсолютные пути.

Когда вам нужен путь относительно пути к классу, используйте:

InputStream is = YourClass.class.getResourceAsStream("/a.properties")`

(maven отправляет файлы из /src/main/resources в корень пути к классам)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...