2016-07-13 3 views
0

Я пытался экспортировать свой проект в качестве Runnable Jar, но мои ресурсы не загружались, потому что я пытался напрямую получить доступ к изображению с пути моего проекта. Например:Java: не удается получить доступ к изображениям в ресурсах

ImageIcon icon = new ImageIcon("resources/icon.png"); 

Эта работа будет, когда я запустил проект из самого Eclipse, но я заметил, что изображения не были включены в файл JAR. Поэтому после исследования я выяснил, что мне нужно создать исходные папки и поместить в них изображения/текстовые файлы, а затем использовать getClass(). GetResource(), чтобы получить к ним доступ. Однако, когда я это делаю, URL-адрес всегда возвращается как null.

Для справки, это то, что мой проект исследователь выглядит следующим образом:

Test 
---src 

---resources 
    ---icon.png 

---config 
    ---file.ini 

А вот код, который дает мне NullPointerException при попытке получить доступ к icon.png:

ImageIcon icon = getClass().getResource("/resources/icon.png"); 

В качестве альтернативы , Я также пробовал:

ImageIcon icon = getClass().getClassLoader().getResource("resources/icon.png"); 

Но это также заканчивается в NullPointerExc eption. Я проверил множество решений в Интернете, но никто из них, похоже, не работал для меня. Обратите внимание, что мне также нужно иметь доступ к файлу .ini, поэтому решение, которое работает только для изображений, не сможет полностью решить мою проблему. Любая помощь будет очень признательна, спасибо.

+0

при упаковке в банке , где is icon.png? Не могли бы вы разместить структуру банки? – alexbt

+0

Ресурсы должны находиться в папке под/src – basic

+0

Попробуйте '' /icon.png "' - или посмотрите с 7zip, WinZip или такими в банке для пути. Без ведущего '/' путь будет относиться к пути пакета для класса, на котором вы получаетеResource. –

ответ

0

Ваша структура должна быть:

TEST 
    -SRC 
    -Resources 
     -icon.png 

Путь ваш код прямо сейчас нет изображения, потому что ваш код ссылки/SRC/ресурсы не проверить/ресурсы

+0

Это, похоже, не работало для меня на самом деле. Когда я пытаюсь добавить исходную папку внутри src, она автоматически выставляет ее снаружи, и если я попытаюсь вырезать/вставить ее, она превратит ее в пакет. Я попробовал его с пакетом, и все еще казалось, что он дает исключение NullPointerException, но ответ Joop работал на меня. EDIT: Nevermind, я скомпилировал его снова, и он начал работать? Благодаря! – 0Calories

+0

Чтобы добавить: для того, чтобы это решение работало, мне пришлось использовать «/icon.png» в качестве URL-адреса. EDIT: Только что выяснили, что это работает только в Eclipse, и когда я экспортировал его как Runnable Jar, это не сработало. Однако, используя решение Joop с тем, как мой проект был настроен, прежде чем работал даже после экспорта. – 0Calories

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