2015-05-21 2 views
1

У меня есть четыре класса в моей игре; Player.java, Game.java, Island.java и Map.java. И в основном его много кода для ссылки здесь, однако моя проблема в том, что моя программа отлично работает в eclipse, но когда я экспортирую как банку и запускаю ее, ничего не открывается, поэтому я открываю ее с помощью CMD, и она дает ошибки.Eclipse запустил мою программу, но JAR-файл не

вход в CMD:

java -jar GameAlliansen.jar 

Выход из CMD:

Исключение в потоке "основного" java.lang.NullPointerException на javax.swing.ImageIcon.

Это, как я импортировать мои изображения

island = new ImageIcon(Game.class.getResource("/Island(64x64).png")); 

http://i.imgur.com/dRe2HNz.png Thats мой образ проекта

+0

1. Включен ли файл в банку? 2. Имеет ли он правильную капитализацию? – kiheru

+0

@ Lurr123 см. [Здесь] (http://stackoverflow.com/questions/8532114/how-to-package-images-into-a-runnable-jar) и [здесь] (http://stackoverflow.com/questions/1096398/add-image-to-jar-java) – timato

+0

имеет * Остров (64x64) .png * экспортирован в файл jar? если это его местоположение в файле jar? – Blip

ответ

2

Измените код:

Icon island =new ImageIcon(ImageIO.read(getClass().getResource("/Island(64x64).png"))); 
+0

Изменено, эта же проблема работает в eclipse, но не тогда, когда я запускаю за пределами eclipse как runnable jar – Lurr

0

При экспорте его, создать папку в котором вы поместите свой файл jar и ТАКЖЕ изображение Island (64x64) .png

+0

Ну, мне не нужно было этого делать, я имею в виду просто включить изображения в JAR, чтобы иметь возможность загружать его, чтобы люди могли скачать один файл – Lurr

1

Пути внутри банки чувствительны к регистру, в то время как не все файловые системы (например, используемые Windows - это только сохранение в случае, а не чувствительность к регистру). Вы пытаетесь загрузить «Остров (64x64) .png», но изображение показывает, что фактическое имя файла - «остров (64x64) .png». Измените их, чтобы они соответствовали.

Смежные вопросы