|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
Упаковка ресурса в артефакт и получение пути12.11.2020, 01:57. Показов 6149. Ответов 13
Метки нет (Все метки)
Доброго времени суток вам.
Сразу надо сказать, что работаю в Intellij IDEA. Есть такая ситуация: одна либа требует файла конфигурации для корректной работы. Пока все происходит в ИДЕИ и пути абсолютны - я могу просто прокидывать абсолютный путь как строку в метод конфигурации, и все будет работать. Когда же речь идет о запаковке в артефакт, то все меняется: абсолютного пути уже не существует. Вопрос: что же делать, как получить относительный путь? В интернете нашел много (бес)полезных советов, проблема которых в их "неполности":
В общем, инструменты, которыми надо орудовать, мне понятны. Мне непонятно, что с ними делать. Если задача: "получить путь", исходные данные - мы знаем, в каком классе работаем (типа знаем путь до класса от корня проекта) и знаем относительный путь до ресурса (а вот тут не уверен, смотри ниже). Отдельной проблемой идет то, что в распакованном виде:
Вот и как быть?
0
|
|
| 12.11.2020, 01:57 | |
|
Ответы с готовыми решениями:
13
Получение ресурса string в классах Получение Utilization отдельного ресурса (Unit) конкретного ResourcePool Получение Модели DOM (Web ресурса), загруженной JAVA приложением на компе |
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 12.11.2020, 10:04 | |
|
В готовом артефакте надо получить стрим, а не путь. Если либа поддерживает такой вариант, надо использовать его.
Если нужна именно строка, то конфигурацию надо положить в папку рядом с артефактом и читать оттуда. Можно закостылить метод распаковки артефакта, доставание оттуда файла с последующим чтением, но это на самый крайняк и луче так не делать
1
|
|
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
| 12.11.2020, 13:48 [ТС] | |
|
KEKCoGEN, то есть именно получать путь нельзя? Это просто отвратительно. Я был лучшего мнения о яве.
Либо простая: log4j. И чтобы она работала, ей нужен - log4j.properties
0
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|||
| 12.11.2020, 13:53 | |||
|
0
|
|||
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
||||||||
| 12.11.2020, 13:55 [ТС] | ||||||||
0
|
||||||||
|
Модератор
|
|
| 12.11.2020, 14:05 | |
Сообщение было отмечено Vhodnoylogin как решение
Решение
Vhodnoylogin, log4j сам по идее грузит конфиги из корня jar файла, главное туда его положить, еще можно положить где угодно настройки вне jar и передать путь в спец параметре при запуске программы
а в самой программе ничего не надо делать, конфиги сами загрузятся
1
|
|
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|||||
| 12.11.2020, 14:09 [ТС] | |||||
|
Ибо я говорил, что было бы прекрасно получать внутренние пути в артефакте и работать с ними, будто бы архива не существует. Но так нельзя. Весь вопрос вокруг этого и вертится: как получить файл, который лежит в артефакте. И есть вытекающий из него вопрос: как получить файл, если путь до него меняется, когда он упаковывается в артефакт.
0
|
|||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 12.11.2020, 14:39 | |
|
Vhodnoylogin, log4j по дефолту берет файл из класспаса (тот что в джаре). Для этого ничего недлать не надо. Если нужно подключить внешний файл (например разная конфигурация для разных стендов), это делается через специальный аргумент окружения. Мануалов на эту тему миллион есть.
0
|
|
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
| 12.11.2020, 17:19 [ТС] | |
|
KEKCoGEN, изначально мне было интересно, как работать с путями внутри артефакта. Особенно, если они изменяются при упаковке проекта.
И на этот вопрос ответа не получил: так и не понял, как можно обратиться к файлу, если я не знаю, где он лежит.
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 13.11.2020, 17:12 | ||
|
Если не пришла, берут стрим из внутреннего файла на класспасе. Таким образом ничего никогда не изменяется.
0
|
||
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
||||
| 25.11.2020, 02:04 [ТС] | ||||
|
0
|
||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 25.11.2020, 10:04 | |
|
0
|
|
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|
| 25.11.2020, 17:35 [ТС] | |
|
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 25.11.2020, 17:46 | |
|
0
|
|
| 25.11.2020, 17:46 | |
|
Помогаю со студенческими работами здесь
14
Стратегия "получение ресурса есть инициализация" Получение пути сохранения файла GetOpenFileName получение относительного пути Получение пути к файлу из ODBC Получение пути к пользовательской директории Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|