![]() |
Модераторы: 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 |
Ок, спасибо! Завтра с утра попробую. А по поводу кода - ну не могу я его выложить целиком, просто не могу
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
это желательно, но не обязательно. Да, до завтра, тем более, что мне тоже пора -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Вот часть, в которой вызывается приведенная выше функция openProps |
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
а где выбор файла-то?!!!
где проверка доступности текущего файла свойств? -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
В функции openProps
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Я не могу сопоставить условие:
и код функции openProps:
Потому как не понимаю, где происходит проверка наличия файла в рабочем каталоге ![]() Может быть поиск файла происходит где-то раньше и инициализирует combo? П.С. код чужой? -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Код мой. Суть приведенного кода такова. Сначала выбирается тип базы данных из комбобокса (MySQL, MSSQL etc). После этого считвается файл настроек для выбранного типа базы. При этом название базы используется как расширение для файла properties. При этом подразумевается, что файл существует
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
hvzh,
а если файл не найден? кто это будет проверять/отслеживать? функция showIOError(e)? Ведь по-сути: задача сводится к определению существования пользовательского файла, если он (файл ![]() где то место в программе, которое осуществляет выбор файла? Где та альтернатива моему примеру:
Это сообщение отредактировал(а) Metal_Heart - 15.11.2006, 14:15 -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Нет такого кода, согласен. Но проблема-то не в его отсутствии, а как раз наоборот! С какого бодуна софт берет в первую очередь файл свойств из jar-а? Кто его просит и какой механизм за это отвечает?
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
путь к файлу, типа "resourses/properties.prop" укажет на файл properties.prop в каталоге resourses упакованного в jar Добавлено @ 15:12 хотя в данном случае имя файла указывается без путей.... я такого воспроизвести не могу (а жаль) Это сообщение отредактировал(а) Metal_Heart - 15.11.2006, 15:02 -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
А Class-Path в файле manifest.mf случайно не указывает на "ресурс по умолчанию" ?
-------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Да вот в том то и дело, что не указывает. Мне совершенно непонятна одна вещь - ПОЧЕМУ прога в первую очередь берет данные из jar-файла?
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Class-Path в файле manifest.mf вообще присутствует?
Если да, то каков он (путь)? -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Нет, не присутствует... А надо?
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
не всегда
![]() Добавлено @ 17:15 ну, чтож давай возьмем в руки бубен ![]()
а если наоборот? Будут ли ошибки в консоли? -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Странно...У меня был простой вопрос... Как решить задачу считывания файла ресурсов по умолчанию. И почему при наличии файла ресурсов в jar, он читается именно оттуда, а не из рабочего каталога, где помещена основная прога
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Простые вопросы могут не иметь простых ответов. В данном случае, мне интересно почему и я хотел бы это узнать ![]() А пробовал вариант моего предпоследнего поста? Вообще, отладчик влетает в функцию openProps если удалить файл "свойств" из рабочего каталога? Это сообщение отредактировал(а) Metal_Heart - 15.11.2006, 17:28 -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
У тебя текущая аська работает?
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
закрыта админами
![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
hvzh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 18.10.2006 Репутация: нет Всего: 1 |
Блин... А какие-нибудь другие способы связи? Типа Skype etc?
|
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
неа, тока форум, если что - можно в личку
![]() Это сообщение отредактировал(а) Metal_Heart - 16.11.2006, 09:52 -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
hvzh, у меня есть конструктивное предложение, а именно:
требуется воспроизвести подобную ситуацию на тестовом примере. Т.е. исходник тестового примера должен быть максимально идентичен проблемному исходнику разработанной проге. Покажи тестовый пример, если эта ситуация повторится:
И почему это решение никому раньше в голову не пришло? ![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |