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

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

5 ответов

Решение

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

  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 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 будет ссылаться на них так же, как в вашем компиляторе.

Другие вопросы по тегам