Вы можете найти каталог приложения, используя ClassLoader. См .: Java: поиск каталога приложения . Вместо файла .INI используйте файл .properties - его можно загрузить и сохранить с помощью класса Properties .
Как уже отмечали другие, вы не должны записывать пользовательские настройки в каталог вашего приложения. Что делать, если у пользователя нет прав на запись в каталог приложения? Что если ваше приложение одновременно используется несколькими пользователями в одной и той же системе? Ни одна из этих ситуаций не является необычной, даже в Windows.
Возможно, вы все равно захотите загрузить некоторые настройки из каталога приложения - возможно, администратор настроил там настройки по умолчанию.
Общепринятым условием является сохранение настроек пользователя в домашнем каталоге пользователя:
/home/user/.eclipse
C:\Documents and Settings\User\.eclipse
Хотя это означает, что вы можете оставить чужие файлы, это может быть полезно, если пользователь переустанавливает приложение. Документируйте такие вещи в README. Вот как можно создать и получить ссылку на каталог:
public static File getSettingsDirectory() {
String userHome = System.getProperty("user.home");
if(userHome == null) {
throw new IllegalStateException("user.home==null");
}
File home = new File(userHome);
File settingsDirectory = new File(home, ".myappdir");
if(!settingsDirectory.exists()) {
if(!settingsDirectory.mkdir()) {
throw new IllegalStateException(settingsDirectory.toString());
}
}
return settingsDirectory;
}
В Unix-подобных операционных системах запуск имени каталога с точкой (".myappdir") сделает каталог скрытым. В Windows он будет расположен ниже Мои документы , поэтому пользователи не увидят каталог, если не будут искать его.