0
- 22.12.2016 - 21:40
|
Возник такой вопрос. Допустим, я пишу настольное java-приложение. Если я запускаю его в винде - конфиг, скорее всего, лежит примерно в той же папке, что и бинарник, а в linux - в /etc или аналогах. Вот в случае традиционных компилируемых языков, при сборке под каждую конкретную платформу я укажу, где лежат конфиги, где бинарники, где библиотеки - и т.д. И инсталлятор будет для каждой конкретной платформы свой (строго говоря, для линукса редко используется инсталлятор, скорее - собирается пакет). А как в случае java-приложения? Куда класть конфиги? Как сделать, чтобы инсталлятор был всеплатформенный? Переменные окружения трогать не хочется. По крайней мере - это будет крайней мерой. Понятно, что можно по сборке для каждой платформы, но как-то это криво. | | |
1
- 22.12.2016 - 23:49
| Предлагаю не страдать и положить все в папку приложения. А то весь запал на приложение уйдет на конфигурацию, может стать камнем преткновения. | | |
2
- 22.12.2016 - 23:59
| Да, есть такая опасность. | | |
3
- 23.12.2016 - 09:15
| но вопрос все-таки о бест практисах. Не я же один столкнулся с такой проблемой. Хотя, смотря, как это реализовано в том же eclipse - похоже, все решили так же. | | |
4
- 23.12.2016 - 10:19
| Есть что скрывать? Операционок(целевых) не так много, для каждой своя сборка. | | |
5
- 23.12.2016 - 10:41
|
Да нет, нечего скрывать. Пытаюсь не изобрести велосипед. Но разве не рекламировалась широко возможность запуска программ под различные платформы? А тут оказывается, можно - но криво. Кстати, как сейчас принято хранить конфиги? Создать класс конфиг и потом серилизовать\десирилизовать его в json - это нормально, или рукожопие? | | |
6
- 23.12.2016 - 11:01
| Такой вопрос лучше задать на скл.ру(надеюсь не сочтут за рекламу) в разделе java. | | |
7
- 23.12.2016 - 12:59
| кстати, а где сейчас основная тусовка java-погромистов? | | |
8
- 23.12.2016 - 13:42
|
хз где тусовка (может тут http://javatalks.ru/ ), а для хранения настроек есть http://docs.oracle.com/javase/8/docs...eferences.html (которые в реестра у винды и в ~/.java/.userPrefs у линукса) такжо можно просто использовать properties, но если они для редактирования юзером, то хранить рядом с бинарником даже в win не стоит | | |
9
- 23.12.2016 - 13:46
| Цитата:
у хипстеров модно хранить конфиги в yaml, у интерпрайза и олдскула в properties (в java есть класс с таким именем смотри его) | | |
10
- 23.12.2016 - 14:28
| о, спасибо. Наверное, это действительно самый правильный путь. | | |
11
- 23.12.2016 - 16:13
|
ну яб не сказал что совсем уж правильный т.к. в linux есть https://standards.freedesktop.org/ba...ec-latest.html который предлагает хранить настройки в: >$XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. If $XDG_CONFIG_HOME is either not set or empty, a default equal to $HOME/.config should be used. Но емнип это можно подшаманить, а вот формат их хранения (и максимальный размер значения в байтах- MAX_VALUE_LENGTH Maximum length of string allowed as a value (8192 characters).) весьма печален 8), но если руками не лазить в файлы и что-то жирное не хранить то подойдет | | |
12
- 25.12.2016 - 20:30
| В ~/.. | |
| Интернет-форум Краснодарского края и Краснодара |