Java в Eclipse: куда поместить файлы в файловую систему, которую я хочу загрузить с помощью getResource? (например, изображения для ImageIcon)

StackOverflow https://stackoverflow.com/questions/270197

Вопрос

Я знаю, что файл должен быть там, где 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") .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top