Runnable JARs отсутствуют Изображения/Файлы (Ресурсы)

Когда я экспортирую свой код в качестве runnable JAR из eclipse, все файлы, которые я установил для захвата, такие как изображения кнопок и другие файлы, отсутствуют, даже если они фактически находятся в JAR. Я добавил getClass().getResource перед файлами, но тогда, когда я пытаюсь запустить JAR, ничего не происходит, любые предложения?

Ответ 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");

Надеюсь, это поможет!