Java в Eclipse: куда поместить файлы в файловую систему, которую я хочу загрузить с помощью getResource? (например, изображения для ImageIcon)
-
06-07-2019 - |
Вопрос
Я знаю, что файл должен быть там, где getClass (). getResource (имя файла) может его найти, но я не знаю, где это.
Меня интересует, как разместить файлы в самой файловой системе, и как использовать функциональные возможности Eclipse для настройки ресурсов.
Решение
Для Eclipse, как правило, все, что вам нужно сделать, - это создать папку где-нибудь в вашем каталоге исходного кода. Например, если каталог с вашим источником - / src
, вы можете создать папку / src / resources
для размещения ваших изображений / файлов. Затем внутри вашего класса вы сделать getResource (" /resources/image.png")
, чтобы получить его. Р>
Вы также можете разместить изображение / файл в той же папке / пакете, что и класс, пытающийся получить к нему доступ, если хотите (пример: поместите image.png в пакет com.mycompany
с Класс com.mycompany.Foo
, которому необходимо получить к нему доступ и вызвать getResource (" image.png ")
), но я обнаружил, что легче хранить ресурсы, такие как изображения и другие файлы в их собственном специальном каталоге вне папок классов - ими просто управлять таким образом.
В Eclipse всякий раз, когда вы выполняете сборку, файлы в этом каталоге ресурсов будут копироваться в ваш каталог сборки вместе с вашими скомпилированными классами. Р>
Важно отметить, что если у вас есть " Построить автоматически " включил в Eclipse (как это делают большинство людей) любые ресурсы в этом каталоге, которые были изменены за пределами Eclipse (то есть вы редактируете изображение с помощью инструмента редактирования изображений), чтобы среда IDE не всегда обнаруживала это изменение. Обычно в этих ситуациях обновление папки проекта гарантирует, что файл обновляется в сборке.
Другие советы
Вы можете либо поместить их в папку src рядом с вашими классами, либо создать для этой цели новую исходную папку (обычно называемую resources ), хотя вы будете находить их идентично из кода. р>
Затем вы получите их, используя getResource (" /com/x/y/foo.png")
.