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

Entrée/Sortie Java Discussion :

Comment modifier un fichier qui se trouve a l’intérieur du JAR ?


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 54
    Points : 59
    Points
    59
    Par défaut Comment modifier un fichier qui se trouve a l’intérieur du JAR ?
    Salut tout le monde

    J’ai développer une application en java. En exécutant cet application, l’utilisateur doit saisir des informations… je veux que lorsqu’il ferme l’application, ces informations ne soient pas perdus, alors tout sera sauvegardé pour une future exécution.
    La solution évidente c’est de sauvegarder les données dans un fichier lors de la fermeture puis les lire a partir de ce dernier a chaque fois que l’application est lancée. Cette solution marche mais présente des problèmes (si le fichier de sauvegarde est modifié/supprimé…)
    Est-ce qu’il y a une solution meilleure et plus simple?
    Si c’est pas possible d’éviter le fichier de sauvegarde, est-ce que c’est possible de mettre ce dernier a l’intérieur du JAR de l’application… et si oui, comment faire pour le lire et le modifier.

    Merci beaucoup.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Points : 909
    Points
    909
    Par défaut
    Citation Envoyé par byubi Voir le message
    La solution évidente c’est de sauvegarder les données dans un fichier lors de la fermeture puis les lire a partir de ce dernier a chaque fois que l’application est lancée. Cette solution marche mais présente des problèmes (si le fichier de sauvegarde est modifié/supprimé…)
    Est-ce qu’il y a une solution meilleure et plus simple?
    Franchement, ça ne me paraît pas une si mauvaise solution... Si le fichier est placé à un endroit qui indique clairement qu'il s'agit d'un fichier de configuration du programme, et que l'utilisateur s'amuse quand même à le supprimer ou à le modifier, c'est son problème : sous Windows on ne s'amuse pas avec les fichiers des répertoires "program files" ou "application data", ou alors c'est à ses risques et périls...

    Et sinon, pour éviter de réinventer la roue, dans la FAQ on te conseille l'API Preferences pour gérer les préférences de l'utilisateur, je ne sais pas si ça te conviendra mais ça me paraît correspondre pas trop mal à ce que tu veux faire

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 54
    Points : 59
    Points
    59
    Par défaut
    alors y a pas d'autre solution que le fichier a l'extrieur du JAR?

  4. #4
    Membre régulier Avatar de Space23
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 185
    Points : 88
    Points
    88
    Par défaut
    Ton JAR c'est comme un fichier zip une fois qu'il est fait il est fait. Après tu peut stocker tes infos sur un serveur avec une connexion JDBC, car la avec ta config actuelle si l'utilisateur change de machine il perdra ses données.

    Après ça dépend du volume de ce que tu veux stocker, si c'est pour sauvegarde 3, 4 String ça vaut pas vraiment le coup.

  5. #5
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 324
    Points
    4 324
    Par défaut
    Il est possible de manipuler les fichiers .jar avec le type ZipFile.
    Il existe aussi JarFile qui permet entre autre de manipuler facilement le manifest (ici inutile dans ton cas).
    C'est vrais qu'a moins de chercher VRAIMENT le plantage, l'utilisateur va éviter de décomprésser un .jar pour éditer un fichier de config (ce qui sera d'autant plus invraisemblable si l'utilisateur n'est pas un développeur Java).

    Pour éviter que l'utilisateur touche trop aux fichiers de configuration, et si ta config n'est pas partagé avec une autre application non Java, je pense que la meilleure solution est la serialisation.

    Il te suffit pour celà d'avoir une classe dédié a ta config, puis la sérialiser / désérialiser au chargement et a la fermeture de ton programme.
    Le gars qui va ouvrir le fichier, quand il verra le contenu du fichier, si il veux tenter d'éditer il cherche vraiment les problèmes .
    Pour l'avoir testé, cette facon de faire simplifie très grandement la gestion d'un fichier de config
    http://alaindefrance.wordpress.com
    Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
    SDE at BitTitan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/06/2012, 16h01
  2. Comment declarer un fichier qui se trouve sous un chemin
    Par helkha86 dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 11/05/2012, 08h23
  3. Réponses: 2
    Dernier message: 08/05/2012, 12h39
  4. Réponses: 2
    Dernier message: 31/07/2008, 10h07

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