2013-05-26 2 views
0

Я написал игру, в которой используются PNG, и когда я ее экспортировал, изображения не будут работать. Я добавил getClass().getClassLoader().getResource() везде, где я импортирую изображение, но JAR больше не запускается. Он использовался для открытия, но ни одно из изображений не работало. Теперь он даже не откроет JAR.JAR не работает после добавления изображений

Это, как я получаю изображение для сдобы:
muffin=new ImageIcon(getClass().getClassLoader().getResource("muffin.png")).getImage(); Фактический путь к ней: C:\Users\My User Name\Dropbox\FinalProjectWithoutApplet\muffin.png

Что я должен сделать, чтобы решить эту проблему?

Спасибо!

+0

Являются ли изображения, содержащиеся в вашем файле jar? Извлеките его и проверьте это. – Kai

+0

Да, они есть. [Скриншот] (http://imgur.com/xNmUhYi) – faeophyta

+0

Как вы используете метод 'getResource()'? отправьте все необходимые коды – BackSlash

ответ

0

Я нашел проблему. Оказывается, мои случаи несовместимы. IDE не волновало, что один из них был вызван "muffin.png" в коде против "Muffin.png". Другой случай, который я нашел, был "DoubleJumpIcon.png" против "DoubleJumpIcon.PNG". Каждый случай имеет значение.

0

getClass().getClassLoader().getResource("muffin.png") Ищет изображение muffin.pngв том же каталоге, в котором у вас есть.

Я имею в виду, что если имя вашего класса com.mycompany.game.MyClass, изображение должно быть в com/mycompany/game/muffin.png. Если это не абсолютный путь записи местоположения, который начинается с /, например /img/muffin.png.

И в будущем, если программа не работает, начните с проверки трассировки стека.

+0

Изображение находится в каталоге с исходными файлами, есть ли у вас какие-либо идеи, что может быть неправильным? – faeophyta

+0

Нет, использование 'getClassLoader()' означает, что оно будет выглядеть из каталога * root *. Если бы это был просто класс.getResource' это было бы правдой. –

+0

Изображения должны быть в пути к классам, то есть там, где есть файлы классов. Источник не должен быть в файле jar вообще. – AlexR