Мне нужно предоставить файл настроек для моей программы, к которому у пользователя должен быть доступ, чтобы написать некоторые необходимые мне настройки.
Я создал файл под новым каталогом (называемым настройками) в корне моего приложения, но у меня есть проблема с его поиском во время выполнения.
Я использую
File SettingsFile=new File(ClassLoader.getSystemClassLoader().getResource(".").getPath()+"settings/CreateSettings.txt");
Когда я выполнить это при затмении я получаю
/application/home/dir/target/classes/settings/ZipCreateSettings.txt
, что неправильно.получить корневую директорию приложения maven
Если я выполнить его на терминале с помощью Java -jar, я получаю правильный путь,
/application/home/dir/settings/ZipCreateSettings.txt
Это вызывает у меня проблемы, потому что мне нужно запустить приложение прямо из затмения и не использовать терминал, даже хотя он будет выполнен с использованием банки, когда он будет запущен и запущен.
Я не могу так держать, потому что этот код может оказаться в чьих-то руках, и они понятия не имели, что с ним делать.
Я также использовал некоторые другие методы, такие как new java.io.File("").getAbsolutePath();
, но это всегда дает мне текущий рабочий каталог, поэтому, если я выполню банку из/home, я бы получил/home.
Я думаю, что проблема может быть maven (с которой я вообще не знаком), так как мой код работал с простым Java-приложением некоторое время назад.
'System.getProperty (« user.dir »);' Это то, что вы ищете? – McNultyyy
@McN no, это получает текущий каталог пользователя,/home например –
Вы думаете о 'user.home',' user.dir' - текущий рабочий каталог. Поэтому вы должны найти файл как «System.getProperty (« user.dir ») +« // settings // CreateSettings.txt »;' – McNultyyy