#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")
?