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 :

Ouvrir un fichier dans un jar


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut Ouvrir un fichier dans un jar
    Bonjour à tous,

    Je développe actuellement un wizard eclipse, mais ma question est un peu plus générale.
    Donc mes sources sont compilées en un wizard.jar, à l'intérieur duquel j'ai fait un dossier resources, contenant un toto.txt.

    Je voudrais pouvoir lire ce fichier depuis une classe du jar, mais quand je fais lire("resources/toto.txt"), ça ne fonctionne pas...

    J'ai essayé de chercher sur le net une réponse à cette question, mais je ne trouve pas :\

    Merci d'avance !

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Ah en fait je viens de comprendre ce qu'on trouve sur le forum ici, le "fichier" toto.txt n'est pas considéré comme un fichier mais un stream... Donc il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream toto = getClass().getResource("resources/toto.txt").openStream();
    et se débrouiller avec ça :p Désolé pour le flood.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Rebondissement : En fait ça ne marche pas tel que je l'ai fait... Le stream obtenu est null, vraisemblablement parce qu'il n'a pas trouvé resources/toto.txt... Je ne sais pas trop quel path il faut mettre... En gros ma sources est dans /src/ et toto.txt dans /resources/
    Mais j'ai essayé de remplacer par "../resources/toto.txt", et ça ne marche pas mieux...

    Une idée ?

    Merci d'avance !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 136
    Par défaut
    Bonjour,

    En fait je pense que c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InputStream toto = TaClasse.class.getResourceAsStream("Chemin_depuis_le_début_du_package" + "toto.txt");
    Cdlt

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 63
    Par défaut
    Bon j'ai toujours le même problème...

    J'ai essayé de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream xsd = WizardXMLPage.class.getClassLoader().getResourceAsStream("../../resources/patchs.xsd");
    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream xsd = WizardXMLPage.class.getClassLoader().getResourceAsStream("/resources/patchs.xsd");
    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream xsd = WizardXMLPage.class.getClassLoader().getResourceAsStream("resources/patchs.xsd");
    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream xsd = WizardXMLPage.class.getResourceAsStream("../../resources/patchs.xsd");
    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream xsd = WizardXMLPage.class.getResourceAsStream("/resources/patchs.xsd");
    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream xsd = WizardXMLPage.class.getResourceAsStream("resources/patchs.xsd");
    Rien ne marche... Est-ce que quelqu'un a un idée pour récupérer le contenu de ce xsd une fois que j'exporte le .jar du programme ? (le xsd étant à l'intérieur)

    Merci d'avance !

  6. #6
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    En théorie le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InputStream is = getClass().getResourceAsStream("/resources/toto.txt");
    devrait fonctionner si le fichier toto.txt est bien dans le paquetage resource si tu as quelque chose du type wizard/resources/toto.txt il faut bien que tu partes du du wizard, sinon essayes de mettre le même paquetage que la classe qui l'exploite pour faire un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    InputStream is = getClass().getResourceAsStream("toto.txt");

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/01/2007, 12h52
  2. [JAR]Modification de fichier dans un jar
    Par vberetti dans le forum Général Java
    Réponses: 14
    Dernier message: 13/06/2005, 17h56
  3. [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
  4. [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