Когда я экспортирую свой код в качестве runnable JAR из eclipse, все файлы, которые я установил для захвата, такие как изображения кнопок и другие файлы, отсутствуют, даже если они фактически находятся в JAR. Я добавил getClass().getResource
перед файлами, но тогда, когда я пытаюсь запустить JAR, ничего не происходит, любые предложения?
Runnable JARs отсутствуют Изображения/Файлы (Ресурсы)
Ответ 1
Похоже, вы не помещаете свои вещи в правильном смысле. Чтобы заставить его работать, выполните следующие действия:
- Щелкните правой кнопкой мыши свой
Project
вProject Explorer Tree
. - Перейдите в
New -> Source Folder
, а затем укажитеName
наSource Folder
. - Теперь вручную добавьте свой материал в этот
Source Folder
, созданный вами, например, если вы хотите добавить изображения, затем сделайтеNew Folder
, вручную посетив этотSource Folder
черезFile System
. - Назовите это
New Folder
какimages
и скопируйте свои изображения на этотFolder
. - Теперь вернитесь к своей Eclipse IDE и
Refresh
кProject
из Project Explorer, нажав правой кнопкой мыши на свой проект, и теперь вы сможете увидеть свой добавленный контент после обновления.
Теперь, чтобы получить доступ, скажем, любое изображение, которое вы будете использовать.
getClass().getResource("/images/yourImageName.extension");
который вернет один объект URL. Помните first forward slash
, в этом случае, поскольку все, что находится внутри вашей исходной папки, доступно с помощью этого, в более простых выражениях. Теперь, когда вы запустите свой проект, содержимое этой исходной папки будет автоматически добавлено в папку bin, и когда вы создадите Runnable Jar, тогда доступ к материалу внутри вашей исходной папки будет доступен, как есть.
Ответ 2
Путь должен быть прав для ресурса.
Для "foo.gif", находящегося в корневом баночке, вы должны обратиться к нему с помощью "/foo.gif".
Если программа работает правильно после полной очистки и перестроения, но не работает как банка, у вас, скорее всего, нет файлов, включенных в банку.
Ответ 3
Попробуйте поместить папки в банку так же, как вы их получили в программе. Поместите те же ресурсы в тех же местах, что и у вас в проекте. Ящик будет ссылаться на них так же, как и в вашем компиляторе.
Ответ 4
Вам нужно получить изображения с помощью потока, как это - this.class.getClassLoader(). getResourceAsStream ( "test.jpg" ) и убедитесь, что изображения присутствуют в банке, на которую вы ссылаетесь.
Ответ 5
Как сказал nIcE cOw, вам просто нужно создать исходную папку в дереве проводника проектов. Все файлы внутри этой папки будут находиться в корневой папке проекта.
Чтобы обратиться к ним, вы должны написать название своих проектов, чтобы скрыть имя файла:
getClass().getResource("ProjectName/image.extension");
Надеюсь, это поможет!