Vous pouvez trouver le répertoire de votre application en utilisant le ClassLoader. Voir: Java: finding the application directory. Plutôt qu'un fichier .INI, utilisez un fichier .properties - vous pouvez le charger et le sauvegarder via la classe Properties.
Comme d'autres l'ont noté, vous ne devez pas écrire les paramètres utilisateur dans le répertoire de votre application. Que faire si l'utilisateur n'a pas accès en écriture au répertoire de l'application? Que faire si votre application est utilisée par plusieurs utilisateurs sur le même système en même temps? Aucune de ces situations ne sont inhabituelles, même sur Windows.
Vous pouvez toujours vouloir charger certains paramètres à partir du répertoire de l'application - l'administrateur a peut-être configuré les paramètres par défaut.
Une convention commune est d'enregistrer les paramètres de l'utilisateur dans le répertoire de l'utilisateur:
/home/user/.eclipse
C:\Documents and Settings\User\.eclipse
Bien que cela signifie que vous pourriez laisser des fichiers parasites derrière, cela peut être bénéfique si l'utilisateur réinstalle l'application. Documentez ces choses dans un fichier README. Voici comment créer et obtenir une référence au répertoire:
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;
}
Sur les systèmes d'exploitation Unix, en commençant le nom du répertoire avec une période (« .myappdir ») fera le répertoire caché. Sous Windows, il sera situé sous Mes Documents, de sorte que les utilisateurs ne verront pas le répertoire à moins qu'ils ne le recherchent.
et que sur l'exécution de la même application dans Mac OS ?? Et je suis totalement d'accord avec cet article .. http://www.codinghorror.com/blog/archives/000939.html Donc, je pense que le registre n'est pas une bonne idée du tout :) – Lipis