powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с относительными/абсолютными путями.
7 сообщений из 7, страница 1 из 1
Проблема с относительными/абсолютными путями.
    #38374806
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В программе используется класс Image, с помощью него можно достать рисунок.
Код: java
1.
  Image img = new ImageIcon("Shooter2D/res/background.jpg").getImage();


Когда программа запускается в среде разработки - все работает, после компиляции в jar файл - не работает.
Подскажите как правильно прописать путь, чтобы работало и в IDE(Intellij IDEA) и из архива.
Состав Shooter2D.jar :
META-INFManifest-Version: 1.0
Main-Class: Shooter2Dv22082013.Main
resвсе рисунки
Shooter2Dv22082013все .class файлы, главный Main.class

показательный рисунок: http://imageshack.us/photo/my-images/801/eyjv.png/
...
Рейтинг: 0 / 0
Проблема с относительными/абсолютными путями.
    #38374813
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно использовать методы Class.getResourceAsStream и ClassLoader.getResourceAsStream
...
Рейтинг: 0 / 0
Проблема с относительными/абсолютными путями.
    #38374818
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaa,

В том виде в котором у вас можно только грузить файлы вне jar-а.
...
Рейтинг: 0 / 0
Проблема с относительными/абсолютными путями.
    #38375029
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
раньше пробовал так:
new ImageIcon(MyClass.class.getResource("/res/background.jpg"))
new ImageIcon(MyClass.class.getClassLoader().getResource("res/background.jpg"))
по-моему это правильней, чем еще дополнительно использовать InputStream.
Но была загвоздка в том, что в этом случае jar видел ресурсы, а IDEA нет.
авторРешение:
Переместил res в Shooter2Dv22082013 и теперь все нормально работает в IDE и через jar.
p.s - отписал как получил результат, м.б. кто будет искать по форуму с похожим)
...
Рейтинг: 0 / 0
Проблема с относительными/абсолютными путями.
    #38375051
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaпо-моему это правильней, чем еще дополнительно использовать InputStream.

"по-моему" это технически слабая аргументация.
"по-моему" InputStream из URI всё равно будет создан. Поэтому "по-моему" использовать Resource URI особого смысла нет. Зато "по-моему" есть риск того что код станет непереносимым, когда он вдруг попадёт в JEE, OSGi, апплет или другую задницу.

eldarkaaНо была загвоздка в том, что в этом случае jar видел ресурсы, а IDEA нет.

Вот и я об этом.

авторРешение:
Переместил res в Shooter2Dv22082013 и теперь все нормально работает в IDE и через jar.
p.s - отписал как получил результат, м.б. кто будет искать по форуму с похожим)[/quot]

Shooter2Dv22082013 это имя package? Сильный ход. Ещё скажи что ImageIcon("Shooter2D/res/background.jpg") так и остался с этим путём?
...
Рейтинг: 0 / 0
Проблема с относительными/абсолютными путями.
    #38375119
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eldarkaaНо была загвоздка в том, что в этом случае jar видел ресурсы, а IDEA нет.С такой же проблемой столкнулся при переносе проектов с Eclipse/Netbeans на Idea.
После переноса в Idea функции getResource... всегда возвращали null .
Нужно прописать расширения ресурсных файлов: http://www.jetbrains.com/idea/webhelp/resource-files.html
Должно помочь.
...
Рейтинг: 0 / 0
Проблема с относительными/абсолютными путями.
    #38375420
eldarkaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz Shooter2Dv22082013 это имя package? Сильный ход.
- Пробовал подружиться с github . Не получилось, так что пока на время версии отделяю с помощью пакетов. Потом изменю название пакета во всех местах сразу и всё(IDE позволяет).

если использовать loadResourceAsStream() , то надо обработать исключение IOException ... в классе, где подгружаю файл, нельзя почему-то обработать, да и перебросить не получается....
пока использую getResource("res/background.jpg") , как встанет вопрос о переносимости в ... буду использовать loadResourceAsStream()
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с относительными/абсолютными путями.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]