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

Java Discussion :

Bonne pratique Fichier Properties


Sujet :

Java

  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 Bonne pratique Fichier Properties
    Bonjour, je poste ce sujet pour utiliser et acquérir une bonne pratique.

    Je réalise actuellement une application qui charge des properties de base (présent dans le dossier resources de mon projet de base et charger lors de la compilation).
    Je souhaiterais que l'utilisateur puisse modifier / ou ajouter des properties pendant l'exécution.

    Je pourrais passer par la demande à l'utilisateur de spécifier le répertoire lors du premier lancement mais je souhaiterais ne pas le faire pour divers raisons ...

    Du coup peut on modifier les properties d'un jar sachant que celui ci est déjà compiler ? Peut on modifier dynamiquement un jar donc recompiler ou interpréter pendant l'exécution ?

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Un Jar n'est pas destiné a être modifié lorsqu'il est chargé. Déjà, sur certains systèmes ce ne sera même pas possible parce que un fichier chargé est verrouillé.


    Au lieu d'utiliser un fichier properties, utilise l'API Preference de Java qui est plus adaptée à ton besoin : le fichier properties pourra servir éventuellement à initialiser ces préférences.

    Par ailleurs, tu peux également déterminer un dossier automatiquement pour ton application et y stocker ce que tu veux, y compris un fichier properties que tu pourras modifier.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File dossierConfigApplication = new File(System.getProperty("user.home"), "monApplicationTruc");
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  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 je réponds tardivement . L' API préférence fonctionne de la même manière que des properties non ? Peux ton crypter les fichiers générés par cette API ? Et le dossier d'installation ne peut pas être modifie dans ce cas là par l'utilisateur ? Sachant que le jar ne saura pas où est stocké le nouveau dossier

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Non, les préférences ne fonctionnent pas du tout comme les Properties :

    • il s'agit d'un système arborescent
    • sous Windows, c'est stockée dans la registry. Sous Unix, dans des fichiers (respectivement, dans <user.home>/.java/.userPrefs et /etc/.java, selon qu'il s’adissent de préférence système ou utilisateur.
    • Il n'y a pas besoin de savoir où c'est stocké : l'API se débrouille. En revanche, il faudra prévoir une procédure de désinstallation pour nettoyer proprement les préférences.
    • il n'y a pas d'options de cryptage intégrée, mais on peut utiliser n'importe quelle solution de cryptage pour crypter les valeurs qu'on écrit dans les préférences. En théorie, les préférences ne sont pas un endroit pour stocker des données cryptées : la solution pourrait être de stocker les données dans un conteneur dédié (un fichier), et de stocker le chemin vers ce container dans les préférences, mais ça n'empêchera personne de virer le fichier ou de l'écraser par un autre
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Je pense que tu pourrais placer ton fichier de properties à l'extérieur de ton projet (en indiquant un chemin relatif peut-être, ou l'absolu en variable d'environnement) pour que l'utilisateur puisse le modifier sans qu'il ne soit nécessaire de recompiler le projet. Par contre le "dynamiquement" je n'y crois pas trop, en détectant les changements en temps réel ? Le plus simple serait de charger les properties au démarrage du projet.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    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
    Très bien merci pour vos réponses je voulais éviter de passer par l'enregistrement d'informations dans un dossier mais à priori j'y serais obligé. Je vais regardé la solution de l'API Preference, tu m'as un peu refroidit sur ton histoire de nettoyage mais je vais regardé en profondeur.

  7. #7
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    Si tu souhaites pourvoir modifier des propriétés dynamiquement et qu'elles soient prises en compte sans devoir redémarrer ton application, je te suggères d'aller voir du côté de la librairie Netflix Archaius.

Discussions similaires

  1. Retour sur "quelques bonnes pratiques" et le comptage de fichiers
    Par Jipété dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 30/04/2015, 11h53
  2. Bonne pratique lecture de fichier texte
    Par Captain'Flam dans le forum Débuter
    Réponses: 3
    Dernier message: 05/02/2014, 13h31
  3. Bonne pratique des fichiers properties
    Par manticore dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 11/11/2013, 11h29
  4. Bonnes pratiques: fichier de projet et plugins
    Par Norris dans le forum Framework .NET
    Réponses: 3
    Dernier message: 15/06/2012, 16h03
  5. Réponses: 33
    Dernier message: 18/04/2009, 12h36

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