![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Следующая проблема: есть файл с настройками софта (читается с помощью Properties) в jar-файле. Планировалось использовать его как файл по умолчанию при отсутствии одноименного в рабочем каталоге. Столкнулся с тем, что при наличии файла в рабочем каталоге, данные все равно считываются из файла, который находится в jar
|
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Без кода могу только предположить, что properties читаются как ресурс, при этом jar есть в CLASS-PATH, а текущий каталог нет.
|
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Jar-файл как раз и лежит в текущем каталоге. Если я из него убираю файл properties, то он его нормальненько считывает из текущего каталого
|
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
"Извиняюсь, кто на ком стоял?" (с) Профессор Преображенский Ну и? А если в CLASS-PATH поместить и текущий каталог и jar что произойдет? Еще не помешал бы код и описание того, как этот код запускается. |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Вот код:
А вот как запускается: #!/bin/bash CLASSPATH=. export CLASSPATH java -jar my_file.jar |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 31 Всего: 132 |
Все равно ничего не понятно. Файл из jar можно прочитать либо как ресурс либо используя JAR API. Видимо где-то еще приложение пытается получить ресурс и прочитать проперти. Не думаю, что приложение лезет непосредственно в jar.
А если попробовать запустить вот так
что получится? Теоретически тогда загрузчик классов должен искать запрашиваемый ресурс сначала в текущем каталоге, затем в jar. |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Exception in thread "main" java.lang.NoClassDefFoundError: MyClass
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
FileInputStream может читать только из файла, но не из jar-архива. Поэтому это не тот кусок кода, который читает данные.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
А по-другому у меня и не читается нигде. Это - единственное место в коде
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
hvzh, рад тебя видеть на нашем форуме!
вот наваял примерчик, как я себе это УПРОЩЕННО представляю:
Это сообщение отредактировал(а) Metal_Heart - 14.11.2006, 16:52 -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Да, но у меня все примерно так же
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
hvzh, или вернее почти
![]() Попробуй понаставить что-то вроде (если нет отладчика) в функцию обращения к ресурсам:
только с этим "из функции ..." надо что-то придумать ![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Функция у меня одна (исходники привел выше). Вызывается только один раз при старте программы
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
hvzh, извини, что неудачно объяснил
Ведь у тебя проблем с чтением из файла свойств - нет? Вроде нет. Зато есть проблемы с поиском этого файла. Я предлагаю выяснить когда и какая функция (в данном случае будем считать init()) читает эти свойства. А также почему не находит. Добавлено @ 17:43 Может сложиться так что читаются оба файла. Сначала искомый, а за ним - тот что по умолчанию. В общем надо изучать работоспособность функции поиска файлов свойств. Сделай что-то подобное, как в моем примере:
только с подробным выводом в консоль. п.с. Приходиться предполагать, раз кода не видно ![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Ок, спасибо! Завтра с утра попробую. А по поводу кода - ну не могу я его выложить целиком, просто не могу
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |