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 :

[JAR]Modification de fichier dans un jar


Sujet :

Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut [JAR]Modification de fichier dans un jar
    Bonjour,
    j'ai developpé un outil que j'ai exporté en .jar.
    Dans cet outil(et donc dans le .jar) se trouve un fichier de configuration. J'aimerai acceder à ce fichier (get ResourceAsStream ne marche pas) et encore mieux modifier ce fichier.
    Comment puis-je faire ?
    Merci
    A+
    Vincent


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Pourquoi ça ne marche pas? Tu as une erreur?
    --Miss Gaëlle--

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Il me retourne un stream null
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                properties=new Properties();         //properties.loadFromXML(properties.getClass().getResourceAsStream(PROPERTIES_FILE_NAME));
                properties.loadFromXML(new FileInputStream(PROPERTIES_FILE_NAME));
    Voila le code. La partie commentée est ce qui remplace la ligne du dessous.
    J'ai bien sur PROPERTIES_FILE_NAME="test.xml"
    Donc quand c'est pas en .jar, ca marche avec la ligne non commentée mais dès que c'est en .jar avec la ligne commentée ca marche pas
    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    en fait j'ai mis le nom de fichier "/test.xml" et la ca marche.
    Maintenant j'ai un problème de chargement de fichier.
    Il me dit qu'il n'est pas conforme. Le type d'exception généré est java.util.InvalidPropertiesFormatException car l'objet est de type Properties.
    Le problème c'est que le fichier est correct, c'est certain car il est bien chargé quand j'execute hors du .jar

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Bon pour le coup du chargement c'etait moi qui avait deconné
    J'avais laisser trainer un fichier qui mettait le b... !
    Maintenant je vais voir pour la sauvegarde dans ce fichier. Je vais garder l'URL du fichier et ca devrait être bon !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    J'arrive pas à créer un OutputStream à partir de l'URL créée.
    En passant par URLCOnnection.getOutputStream(), il veut pas non plus
    Bref je suis un peu bloqué la.
    Comment est ce que je je pourrais accèder à ce fichier en écriture ?
    Merci

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Quelle est l'erreur que tu obtiens ? Problème de droits peut-être ?
    --Miss Gaëlle--

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new FileOutputStream(PROPERTIES_FILE_URL.getPath())
    j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.io.FileNotFoundException: file:\C:\Documents%20and%20Settings\vberetti\Bureau\GenuniPN.jar!\testGenProperties.xml (Syntaxe du nom de fichier, de répertoire ou de volume incorrecte)
    Quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new FileOutputStream(new File(PROPERTIES_FILE_URL.toURI()))
    j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical
    Quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PROPERTIES_FILE_URL.openConnection().getOutputStream()
    j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.net.UnknownServiceException: protocol doesn't support output

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new FileOutputStream(new File(properties.getClass().getResource(PROPERTIES_FILE_URL)))
    Pas sûre que ça marche
    --Miss Gaëlle--

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    le constructeur File(URL) n'existe pas

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Oups

    Et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new FileOutputStream(properties.getClass().getResource(PROPERTIES_FILE_URL).toString()))
    A tout hasard
    --Miss Gaëlle--

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Bon j'ai trouvé ma réponse.
    Les fichier jar sont read-only donc on ne peut pas écrire dans un fichier contenu dans un fichier jar.
    Merci de ton aide Miss Gaelle.
    A+
    Vincent

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Oui effectivement, on aurait pu s'en douter..

    Merci de ton aide Miss Gaelle.
    De rien
    --Miss Gaëlle--

  14. #14
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Les fichier jar sont read-only donc on ne peut pas écrire dans un fichier contenu dans un fichier jar.
    Cela n'est pas tout à fait exact ...

    Voici un domaine de recherche à explorer :
    java.util.jar.JarOutputStream

    Et un exemple concret des possibilités que cela entraine pour une solution adapté à ton probléme :
    http://java.developpez.com/sources/?...on%20ZIPetGZIP

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 31
    Points : 21
    Points
    21
    Par défaut
    Merci je vais me pencher la dessus.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/11/2006, 11h38
  2. inclure des fichiers dans un .jar
    Par cysboy dans le forum Multimédia
    Réponses: 3
    Dernier message: 11/09/2006, 13h56
  3. Réponses: 7
    Dernier message: 02/09/2006, 17h49
  4. [JAR] lire un fichier dans un jar OU hors d'un jar
    Par yveslamand dans le forum Général Java
    Réponses: 13
    Dernier message: 25/04/2005, 14h38
  5. [JAR] Accéder à un fichier dans un jar
    Par Nanoua dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 06/07/2004, 13h00

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