Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java не видит файлов ресурсов в jar-архиве 
V
    Опции темы
startpoint
Дата 2.9.2012, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 4.7.2007

Репутация: нет
Всего: нет



 Суть пробдемы звключается в том, что в jar-архиве есть xml-файл, а java говорит что нету. Пояснение:
в текущей директории лежит джарник и папка с либами
Код

$ ls
lib/  m-crawler.jar

запускаем джарник и видим эксепшн, в котором нам говорится, что в такой то либе нет файла hibernate.cfg.xml
Код

$ java -jar m-crawler.jar 
18:16:06,048 DEBUG [net.mcloud.crawler.App.main:19] __START__
43 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.5.6-Final
45 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
46 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
50 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
179 [main] INFO org.hibernate.cfg.Configuration - configuring from file: hibernate.cfg.xml
Exception in thread "main" java.lang.ExceptionInInitializerError
    at net.mcloud.table.TableIterator._getSession(TableIterator.java:39)
    at net.mcloud.table.TableIterator._startTransaction(TableIterator.java:87)
    at net.mcloud.table.TableIterator._load(TableIterator.java:179)
    at net.mcloud.table.TableIterator.hasNext(TableIterator.java:102)
    at net.mcloud.crawler.Dispatcher.run(Dispatcher.java:49)
    at net.mcloud.crawler.App.main(App.java:22)
Caused by: org.hibernate.HibernateException: could not find file: file:/home/zeleniy/Dropbox/projects/m-cloud/m-crawler/target/m-crawler-dist/lib/m-dao-0.2.jar!/hibernate.cfg.xml
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1557)
    at net.mcloud.hibernate.HibernateUtil._buildConfiguration(HibernateUtil.java:74)
    at net.mcloud.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:16)
    ... 6 more
Caused by: java.io.FileNotFoundException: file:/home/zeleniy/Dropbox/projects/m-cloud/m-crawler/target/m-crawler-dist/lib/m-dao-0.2.jar!/hibernate.cfg.xml (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1554)
    ... 8 more

проверяем наличие либы, видим, что она есть и извлекаем из ранее не найденный hibernate.cfg.xml
Код

$ ls /home/zeleniy/Dropbox/projects/m-cloud/m-crawler/target/m-crawler-dist/lib/m-dao-0.2.jar
/home/zeleniy/Dropbox/projects/m-cloud/m-crawler/target/m-crawler-dist/lib/m-dao-0.2.jar
$ jar xf lib/m-dao-0.2.jar hibernate.cfg.xml
$ ls
hibernate.cfg.xml  lib/  m-crawler.jar


В чём проблема, кто знает ?
PM MAIL   Вверх
math64
Дата 3.9.2012, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Цитата(startpoint @  2.9.2012,  17:25 Найти цитируемый пост)
at java.io.FileInputStream.open(Native Method)

Открываешь как обычный файл, а не ресурс внутри jar.
PM   Вверх
AntonSaburov
Дата 4.9.2012, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Тебе уже написали в чем проблема - но обычно нужно и код приводить, где возникает ошибка. А то ты тут всех за экстрасенсов принимаешь - увидел код ошибки и дал диагноз smile
PM MAIL WWW ICQ   Вверх
startpoint
Дата 5.9.2012, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 4.7.2007

Репутация: нет
Всего: нет



Не понимаю. Вот код (немного урезаный):
Код

public class HibernateUtil {

    private static final Configuration  _configuration  = _buildConfiguration();

    private static Configuration _buildConfiguration() {

        File config = new File(HibernateUtil.class.getResource("/hibernate.cfg.xml").getPath());
        return new Configuration().configure(config);
    }
}

Соответственно hibernate.cfg.xml лежит в src/main/resources. В этой теме я выяснил, что файлы ресурсов нужно открывать именно таким способом, какой я использую. А вы говорите, что их надо открывать как то по другому. Как ещё то можно ? Указывать путь ? Какой ? Я же вроде только что ушёл от того, чтобы открывать файлы указывая путь...
PM MAIL   Вверх
startpoint
Дата 6.9.2012, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 4.7.2007

Репутация: нет
Всего: нет



Проблему решил:
Код

private static Configuration _buildConfiguration() {

    return new Configuration()
        .addInputStream(HibernateUtil.class.getResourceAsStream("/hibernate.cfg.xml"))
    .configure();
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.