Как правильно создать структуру приложения для использования ресурсов?

#java #resources #properties

#java #Ресурсы #свойства

Вопрос:

кто-нибудь может мне сказать, как создать структуру каталогов настольного приложения для правильного использования ресурсов? Вот пример структуры моего приложения (с использованием maven). Это работало, пока я не попытался изменить структуру пакетов, я только переименовывал папки.

Новая структура:

src/main/java/com/example/appname/app/App.java // основной класс с приложением, просто запускает графический интерфейс
src/main/java/com/example/appname/gui/GuiFrame.java //JFrame

теперь у меня есть ресурсы таким образом, но это не работает:

src/main/resources/com/example/appname/app/resources /App.properties
src/main/resources/com/example/appname/gui/ресурсы /графический фрейм.свойства

после очистки и сборки netbeans заставляет меня:

target/classes/com/example/appname/app/App.class
target/classes/com/example/appname/app/resources/App.properties
target/classes/com/example/appname/gui/GuiFrame.class
target/classes/com/example/appname/gui/resources/GuiFrame.properties

Но когда я запускаю его, в элементах управления Swing я не вижу никакого текста, который находится внутри файла .properties, они пусты.

могу ли я где-нибудь что-нибудь установить? Спасибо за ответы.

Комментарии:

1. настоятельно рекомендуется использовать «рефакторинг» вместо простого переименования папок, чтобы IDE могла автоматически обновлять ссылки на переименованные папки

2. Я изменил исходные пакеты путем рефейторинга, но папки ресурсов не отразили эту новую структуру. Они не изменились.

3. Переименование пакета ресурсов в Netbeans приводит к тому, что «Рефакторинг переименования не может быть применен в этом контексте»

4. это странная ситуация… в любом случае рефакторинг netbeans не идеален на 100%, я помню, например, что если вы переименовываете сервлет в веб-проекте Java, netbeans (6.9) не переименовывает каждую ссылку в web.xml …

Ответ №1:

Может быть, после вашего рефакторинга вам нужно изменить способ загрузки ресурсов, т.е. с getResourceAsStream("/App.properties") на getResourceAsStream("App.properties") ?