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

API standards et tierces Java Discussion :

API Preference [FAQ]


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 159
    Par défaut API Preference [FAQ]
    Bonjour,

    J'essaye actuellement de mettre en place l' API Preference mais sur le net on trouve très peu d'informations déçu et encore moins en français.

    Je regroupe de nombreuses questions que je me pose et également des informations que j'ai pu récolté.

    - Ou sont stockées les préférences ?

    Les premières réponses que l'on peut trouvé sur le sujet sont variées. Tout d'abord le stockage est différent d'un OS à l'autre.

    - Les préférences sont Windows sont telles stockées au même endroit entre Windows 7 / 8 / 10 ?

    - On peut accéder au préférence via Regedit et naviguer jusqu'au répertoire ou résident les préférences, peut on y accéder via un explorateur Windows ?

    - Les préférences peuvent elles être purger de façon "propre" ? Disons que je souhaite supprimer tous les fichiers préférences, existent ils une manière simple et surtout propre pour supprimer tous les fichiers sans connaître leurs noms ?

    - Pas mal de personnes rencontres le problème suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mai 04, 2016 7:11:23 PM java.util.prefs.WindowsPreferences <init>
    WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
    Une solution est à priori de venir modifier les droits ou au minima de créer le répertoire Prefs dans JavaSoft, ma première interrogation est que j'obtiens cette erreur mais ca ne m’empêche pas d'accéder au préférence qui ne sont soit disant pas créée...

    - Mon application a pour but d'être portable et de demander très peu d’autorisation, et surtout à ce que l'utilisateur n'est pas à spécifier de répertoire pour sauvegarder des fichiers, l' API préférence permet elle facilement d'être mis en place sans avoir besoin d'autorisation et surtout ce reporter à la question au dessus de ne pas à avoir à créer un répertoire Prefs ?

    Je ne pense pas être le seul à me poser de nombreuses questions, si des personnes plus expérimentées pouvaient m'éclairer et je l'espère éclairer plus d'un !

    Je suis également preneur de tutoriel / exemple que ce soit français ou anglais bien que ma préférence soit à ma langue natal !

    (Ceci n'est bien évidemment pas une FAQ mais si ca peut aider les plus courageux à en écrire une cela peut être intéressant, sachant qu'on trouve très peu d'infos !)

    Cordialement Quentin.

    Source :

    Lien officiel https://docs.oracle.com/javase/8/doc.../overview.html

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par quentinb56 Voir le message
    - Ou sont stockées les préférences ?
    La doc est claire à ce sujet: "ça dépend de l'implémentation, l'utilisateur de l'api n'a pas à se pose la question. Ce peut être dans des fichiers, dans un registre spécifique à l'OS, dans une base de données SQL, sur des serveurs,, ...". La JVM choisi en fonction de l'OS, de l'utilisateur, des contraintes de l'environnement.


    - Les préférences sont Windows sont telles stockées au même endroit entre Windows 7 / 8 / 10 ?
    Ce n'est pas précisé puisque cela dépend de l'implémentation. Si tu relance ton application sur la même machine avec le même user, tu récupère tes préférences, c'est tout ce qu'on te garantis. Dans la pratique, a ma connnaissance, la JVM oracle stocke dans la base de registre windows, puisqe c'est là que microsoft recommande de stocker les données applicatives.


    - On peut accéder au préférence via Regedit
    avec la jvm oracle, oui
    et naviguer jusqu'au répertoire ou résident les préférences, peut on y accéder via un explorateur Windows ?
    ben du coup, non.

    - Les préférences peuvent elles être purger de façon "propre" ?
    Si tu les crées de façon propre, oui. Tu met tout sous un noeud qui porte le nom de ton application. Pour purger, il suffit de faire un remove() sur ce noeud.

    Exemple: création via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    main = Preferences.userNodeForPackage(com.company.monapplication.MaClasse.class);
    main.put("hello","world");
    main.put("foo","bar");
    suppression via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    main = Preferences.userNodeForPackage(com.company.monapplication.MaClasse.class);
    main.removeNode();

    - Pas mal de personnes rencontres le problème suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mai 04, 2016 7:11:23 PM java.util.prefs.WindowsPreferences <init>
    WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
    Une solution est à priori de venir modifier les droits ou au minima de créer le répertoire Prefs dans JavaSoft, ma première interrogation est que j'obtiens cette erreur mais ca ne m’empêche pas d'accéder au préférence qui ne sont soit disant pas créée...
    se référer au bug report
    https://bugs.openjdk.java.net/browse/JDK-8038489
    Pour résumer: ce warning apparait la première fois qu'on utilise l'API préférences sur certaines installations où l'installeur n'a pas créé les clés ad-hoc. Ces clés sont de toutes façon automatiquement créées par l'api préférence juste après le warning. Donc tu peux ignorer ce warning.


    - Mon application a pour but d'être portable et de demander très peu d’autorisation, et surtout à ce que l'utilisateur n'est pas à spécifier de répertoire pour sauvegarder des fichiers, l' API préférence permet elle facilement d'être mis en place sans avoir besoin d'autorisation et surtout ce reporter à la question au dessus de ne pas à avoir à créer un répertoire Prefs ?
    Oui elle est là pour ça.


    Je suis également preneur de tutoriel / exemple que ce soit français ou anglais bien que ma préférence soit à ma langue natal !
    La javadoc de l'api preferences est plus que détaillée sur comment tu dois l'utiliser et la fonctionnalité de chaque méthode. Je ne sais pas ce que tu veux de plus

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Novembre 2013
    Messages : 159
    Par défaut
    Merci pour ta réponse.

    Oui la doc officiel est tellement détaillé qu'on dénombre un nombre assez impressionnant de demande d'informations sur le sujet (je suis peut être quelqu'un d'inexpérimenté et d'un niveau plus que modestes mais quelques conseils sont parfois bien plus utiles qu'une documentation officielle, un man, ou bien mêmes d'un bouquin de 300 pages ).

    Citation Envoyé par tchize_ Voir le message
    La doc est claire à ce sujet: "ça dépend de l'implémentation, l'utilisateur de l'api n'a pas à se pose la question. Ce peut être dans des fichiers, dans un registre spécifique à l'OS, dans une base de données SQL, sur des serveurs,, ...". La JVM choisi en fonction de l'OS, de l'utilisateur, des contraintes de l'environnement.


    Et non en l'occurence la doc n'est pas si clair (bien que je ne remette pas en cause les solutions d'une ergonomie et d'une intuitivité sans faille d'oracle ).

    Et pour le warning celui ci apparait à chaque exécution.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Probablement car tu n'es pas administrateur ou si tu l'es ton application n'est pas lancée en mode administrateur et donc Java n'a pas le droit pour écrire dans le nœud système qui comme son nom l'indique est commun au système et donc demande un accès privilégié (HK_LOCAL_MACHINE est le nœud système, HK_CURRENT_USER est le nœud utilisateur). De la mème manière que sous Linux tu auras un warning quand les prefs tentent d’écrire dans /etc/java alors qu'il n'y a pas de soucis avec ~/.java.

    De toute manière c'est juste un warning et il arrive juste une fois ; dans le passé, sous Linux il se produisait en boucle a chaque tentative d’écriture... mais bon ça a été corrige depuis.

    -> Conclusion, éviter de stocker les prefs dans dans le nœud système, toujours utiliser le nœud utilisateur sauf si on est sur d'avoir les droit d’accès.

    Sinon :

    Citation Envoyé par http://stackoverflow.com/questions/5354838/java-java-util-preferences-failing
    Resolving the problem The work around is to login as the administrator and create the key HKEY_LOCAL_MACHINE\Software\JavaSoft\Prefs
    I found I had to delete the Prefs node and re-create it
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/07/2017, 09h53
  2. Mise-à-jour de la FAQ de l'API Google Maps
    Par vermine dans le forum APIs Google
    Réponses: 0
    Dernier message: 02/01/2012, 10h24
  3. Participez à la création d'une FAQ APIs Google
    Par Bovino dans le forum APIs Google
    Réponses: 2
    Dernier message: 20/11/2011, 09h06
  4. Une FAQ API Windows pour C
    Par O( N ) dans le forum C
    Réponses: 2
    Dernier message: 27/11/2006, 21h30

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