IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

a propos de java.util.prefs.Preferences


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut a propos de java.util.prefs.Preferences
    Bonjour a tous,

    Je m'interesse a cette classe et ai consulte la FAQ,

    (http://java.developpez.com/faq/java/...refUtilisateur)

    Il y a un petit exemple, que j'ai copie/colle dans mon Eclipse, et va ne marche pas....

    Voici le log de la console:

    Jan 7, 2008 11:54:51 AM java.util.prefs.FileSystemPreferences$2 run
    WARNING: Couldn't create user preferences directory. User preferences are unusable.
    Jan 7, 2008 11:54:51 AM java.util.prefs.FileSystemPreferences$2 run
    WARNING: java.io.IOException: No such file or directory
    Jan 7, 2008 11:55:23 AM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
    WARNING: Could not lock User prefs. Unix error code 2.
    Jan 7, 2008 11:55:23 AM java.util.prefs.FileSystemPreferences syncWorld
    WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.

    Il ne semble as pouvoir creer le fichier, qui est sense reste invisible pour l'utilisateur.....

    Merci pour votre aide

  2. #2
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Peut être utilises-tu Linux ? En ce cas il se peut que le niveau système te soit interdit. Essaie avec les préférences utilisateur, plutôt qu'avec les préférences système.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Je suis en effet sous Linux.

    Tu me recommandes d'utiliser les preferences utilisateur plutot que systeme, mais n'est-ce pas le cas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Preferences prefs = Preferences.userNodeForPackage(TestPreferences.class);

  4. #4
    Membre émérite
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Points : 2 582
    Points
    2 582
    Par défaut
    Ben je sais pas, dans l'exemple placé en lien, je vois qu'ils utilisent les preferences système.

    Bon bref j'imagine que tu as les droits d'écriture sur ton HOME ? Alors je sais pas

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 852
    Points : 22 869
    Points
    22 869
    Billets dans le blog
    51
    Par défaut
    Rassures-toi ca fait pareil sous Windows quand on a pas les droits administrateur.

    Sous Linux (sous formes de fichiers XML) :
    - system : /etc/.java/.systemPrefs/
    - user : ~/.java/.userPrefs/

    Sous Windows (dans la base de registre) :
    - system : HKEY_LOCAL_MACHINE/Software/JavaSoft/Prefs/
    - user : HKEY_CURRENT_USER/Software/JavaSoft/Prefs/

  6. #6
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Hum... ca veut dire que si j'utilise cette classe dans une application, qu'un utilisateur utilise cette application, s'il n'est pas administrateur, il aura le meme probleme ? Sous windows et sur Linux ?

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MathiasM Voir le message
    Hum... ca veut dire que si j'utilise cette classe dans une application, qu'un utilisateur utilise cette application, s'il n'est pas administrateur, il aura le meme probleme ? Sous windows et sur Linux ?
    Ben c'est logique : un simple utilisateur ne peut pas modifier des propriétés systèmes qui impacterais tous les utilisateurs...


    systemRoot() doit être utilisé pour la configuration globale et nécessite donc certain privilège. Ces données sont normalement accessible en lecture pour tous les utilisateurs...
    userRoot() ne s'applique qu'à l'utilisateur courant, et il peut donc les modifier...


    a++

  8. #8
    Nouveau membre du Club
    Inscrit en
    Août 2004
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 41
    Points : 29
    Points
    29
    Par défaut
    Je comprends que ce serait logique dans ce cas, effectivement, mais:

    (copie/colle de la FAQ du site):

    Comment gérer facilement les préférences de l'utilisateur ?

    auteur : Ioan Calapodescu

    La classe abstraite Preferences du package java.util.prefs permet d'enregistrer facilement certaines données. Les implémentations dépendent du système (registres, SGBD, fichiers, etc.), mais ceci est invisible pour l'utilisateur. Plusieurs niveaux de préférences peuvent être définis. Ceux-ci sont accessibles grâce aux méthodes statiques de la classe Preferences.
    Niveaux de Preferences

    * Preferences.systemRoot() : préférences globales du système.
    * Preferences.systemNodeForPackage(Class c) : préférences du système pour une classe donnée.
    * Preferences.userRoot() : préférences globales de l'utilisateur.
    * Preferences.userNodeForPackage(Class c) : préférences globales de l'utilisateur pour une classe donnée.

    Or le code de l'exemple est precisement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public class TestPreferences extends JFrame{
    	Preferences prefs = Preferences.userNodeForPackage(TestPreferences.class);  
    	public TestPreferences(){
    		super("Test");
    		setEtatInitial();	
    		addListeners();
    		setVisible(true);
    		setDefaultCloseOperation(EXIT_ON_CLOSE);
    	}
    	public void setEtatInitial(){
    		int x = prefs.getInt("x",200);
    		int y = prefs.getInt("y",200);
    		setLocation(x,y);
    		int w = prefs.getInt("w",200);
    		int h = prefs.getInt("h",200);
    		setSize(w,h);
    		int state = prefs.getInt("state",Frame.NORMAL);
    		setExtendedState(state);
    	}
    	public void addListeners(){
    		addWindowListener(new WindowAdapter(){
    			public void windowClosing(WindowEvent we){
    				prefs.putInt("state",getExtendedState());
    				setExtendedState(Frame.NORMAL);
    				Rectangle bounds = getBounds();
    				prefs.putInt("x",(int)bounds.getX());
    				prefs.putInt("y",(int)bounds.getY());
    				prefs.putInt("w",(int)bounds.getWidth());
    				prefs.putInt("h",(int)bounds.getHeight());	
    			}	
    		});
    	}
    	public static void main(String[] args){
    		new TestPreferences();	
    	}
    Donc on ne touche pas aux preferences system ??? Arf j'ai du mal a saisir le probleme...

    En tout les cas, merci pour votre aide

    @+

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par MathiasM Voir le message
    Donc on ne touche pas aux preferences system ???
    Non tu as raison j'ai lu ton message un peu trop vite


    Tu utilises bien des préférences utilisateurs et tu ne devrais pas avoir ce problème...

    A tout hasard vérifies les droits de ton répertoire HOME... sinon je ne vois pas trop

    a++ et bonne chance

Discussions similaires

  1. java.util.prefs.Preferences et Struts
    Par borozhim dans le forum Struts 1
    Réponses: 1
    Dernier message: 27/09/2011, 16h47
  2. java/util/prefs/BackingStoreException, besoin d'aide
    Par bertoni dans le forum Langage
    Réponses: 3
    Dernier message: 09/03/2011, 13h08
  3. Utilisation de la classe java.util.prefs.Preferences
    Par a33608 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/10/2009, 09h27
  4. java.util.prefs.Preferences anciens noeuds qui s'affichent
    Par Esil2008 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/01/2009, 11h06
  5. Forcer ma "java.util.prefs.PreferencesFactory" ?
    Par natha dans le forum Langage
    Réponses: 4
    Dernier message: 08/03/2007, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo