В исполняемых файлах JAR отсутствуют изображения / файлы (ресурсы) - PullRequest
8 голосов
/ 22 января 2012

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

Ответы [ 5 ]

22 голосов
/ 14 февраля 2012

Похоже, вы неправильно оценили свои вещи.Чтобы заставить его работать, выполните следующие действия:

  1. Щелкните правой кнопкой мыши свой Project в Project Explorer Tree.
  2. Перейдите на New -> Source Folder и затем введите любой Nameк Source Folder.
  3. Теперь вручную добавьте свои вещи к этому Source Folder, созданному вами, например, если вы хотите добавить изображения, то создайте New Folder, вручную посещая этот Source Folder через File System.
  4. Назовите это New Folder как images и скопируйте ваши изображения в этот Folder.
  5. Теперь вернитесь в свою среду Eclipse и Refresh свой Project изProject Explorer, щелкнув правой кнопкой мыши по своему проекту, здесь вы сможете увидеть добавленный контент сейчас после обновления.

Теперь для доступа, скажем, к любому изображению, вы будете использовать.

getClass().getResource("/images/yourImageName.extension");

, который вернет один объект URL.Запомните first forward slash, в этом случае, поскольку все, что находится внутри вашей исходной папки, доступно с помощью этого, в более простых терминах.Теперь, когда вы запустите ваш проект, содержимое этой исходной папки будет автоматически добавлено в папку bin, а когда вы создадите Runnable Jar, тогда вы сможете получить доступ к содержимому внутри вашей исходной папки.

1 голос
/ 22 января 2012

Путь должен быть правильным для ресурса.

Чтобы "foo.gif" находился в корне банки, вы должны обратиться к нему, используя "/foo.gif".

Если программа работает правильно после полной очистки и восстановления, но не работает как jar, скорее всего, у вас нет файлов, включенных в jar.

0 голосов
/ 04 февраля 2014

Как сказал nIcE COw , вам просто нужно создать Исходную папку в вашем дереве Project Explorer.Все файлы в этой папке будут находиться в корневой папке проекта.

Чтобы обратиться к ним, вы должны написать имя своего проекта, косую черту имени файла:

getClass().getResource("ProjectName/image.extension");

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

0 голосов
/ 19 ноября 2013

Вам нужно получить изображения, используя поток, подобный этому - this.class.getClassLoader (). GetResourceAsStream ("test.jpg") и убедиться, что изображения присутствуют в банке, на которую вы ссылаетесь.

0 голосов
/ 17 августа 2013

Попытайтесь поместить папки в банку так же, как вы получили их в программе. Положите в те же ресурсы в тех же местах, что у вас есть в проекте. Jar будет ссылаться на них так же, как в вашем компиляторе.

...