Вы можете найти каталог своего приложения, используя ClassLoader. См .: Java: finding the application directory. Вместо файла .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 он будет расположен ниже Мои документы, поэтому пользователи не будут видеть каталог, если они не ищут его.
и что о запуске того же приложения в MacOS ?? И я полностью согласен с этой статьей. Http://www.codinghorror.com/blog/archives/000939.html Так что я считаю, что реестр - это не очень хорошая идея :) – Lipis 2008-10-11 00:52:17