Мне нужно просто решение, чтобы найти путь для хранения настроек настольного приложения (например, базы данных sqlite), который отвечает следующим потребностям:
- кросс-платформенный
- работает из jar и из«нормальный» вызов
Я потратил много времени на поиски в Google и экспериментировал с получением пути кодовой базы через классы X.class.getProtectionDomain().getCodeSource().getLocation()
и java.util.pref.Preferences
, но возвращаемые значения давали иногда разные результаты, возвращали ноль илипросто "/" в качестве пути.
"Кроссплатформенность" довольно сложно определить.Решение под названием «наилучшая практика для каждой платформы» будет нелегко достичь.Различие между пользовательскими и общими данными было бы разумным.