В исполняемых файлах JAR отсутствуют изображения / файлы (ресурсы)
Когда я экспортирую свой код как исполняемый JAR из затмения, все файлы, которые я установил для захвата, такие как изображения кнопок и другие файлы, отсутствуют, даже если они на самом деле находятся в JAR. я добавил getClass().getResource
перед файлами, но потом, когда я пытаюсь запустить JAR, ничего даже не происходит, какие-либо предложения?
5 ответов
Похоже, вы не правильно расставляете свои вещи. Чтобы заставить его работать, выполните следующие действия:
- Щелкните правой кнопкой мыши на вашем
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, тогда вы сможете получить доступ к содержимому внутри вашей исходной папки, как есть.
Путь должен быть правильным для ресурса.
Чтобы "foo.gif" находился в корне фляги, вы должны обратиться к нему, используя "/foo.gif".
Если программа работает правильно после полной очистки и восстановления, но не работает как jar, скорее всего, у вас нет файлов, включенных в jar.
Как сказал nIcE cOw, вам просто нужно создать nIcE cOw папку в вашем дереве Project Explorer. Все файлы в этой папке будут находиться в корневой папке проекта.
Чтобы ссылаться на них, вы должны написать имя вашего проекта косую черту имени файла, как это:
getClass().getResource("ProjectName/image.extension");
Надеюсь, это поможет!
Вам нужно получить изображения, используя поток, подобный этому - this.class.getClassLoader(). GetResourceAsStream("test.jpg") и убедиться, что изображения присутствуют в банке, на которую вы ссылаетесь.
Попытайтесь поместить папки в банку так же, как вы получили их в программе. Положите в те же ресурсы в тех же местах, что у вас есть в проекте. Jar будет ссылаться на них так же, как в вашем компиляторе.