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 :

Lire un fichier image a partir d'un .jar


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut Lire un fichier image a partir d'un .jar
    Hello,
    J'essaye en vain d'afficher un fichier image a partir d'un .jar exécutable.

    Voici un extrait de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    URL imgURL1 = getClass().getResource("pics/zoom_in.png");
    System.out.println(imgURL1);
    Image imageBtn1 = new Image(display, imgURL1.getPath());
    Avec Eclipse ce la fonctionne parfaitement. le println affiche:"file:/C:/Users/morchea/workspace/archi_1/bin/pics/zoom_in.png"

    Lorsque j'exporte vers un .jar, et que j'execute sous Windows, voici l'output de la ligne de commande:

    C:\Users\morchea\Documents\Projets\archi>java -jar archi2.jar

    jar:file:/C:/Users/morchea/Documents/Projets/archi/archi2.jar!/pics/zoom_in.png

    Exception in thread "main" org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException: file:\C:\Users\morchea\Documents\Projets\archi\archi2.jar!\pics\zoom_in.png (The filename, directory name, or volume label syntax is incorrect))
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.graphics.ImageLoader.load(Unknown Source)
    at org.eclipse.swt.graphics.ImageDataLoader.load(Unknown Source)
    at org.eclipse.swt.graphics.ImageData.<init>(Unknown Source)
    at org.eclipse.swt.graphics.Image.<init>(Unknown Source)
    at ArchiOpen4ipView.<init>(ArchiOpen4ipView.java:54)
    at ArchiOpen4ip.main(ArchiOpen4ip.java:4)
    Caused by: java.io.FileNotFoundException: file:\C:\Users\morchea\Documents\Projets\archi\archi2.jar!\pics\zoom_in.png (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at org.eclipse.swt.internal.Compatibility.newFileInputStream(Unknown Source)
    ... 6 more



    Ce qui m'inquiete et que je ne comprends pas est le path affiche par le println, il contient "archi2.jar!/..." Ce ! est-il normal?

    Si qqun a une idee, d'avance merci.
    Morchea.

  2. #2
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Bonjour,
    question toute bête: en créant ton jar avec Eclipse, lui as-tu bien demandé de copier tous les fichiers du projet et pas seulement les .class?
    En d'autres termes, si tu ouvres ton .jar avec un décompresseur (winrar, winzip etc.), voit tu dedans ton dossier pics et ton fichier zoom_in.png?
    Par ailleurs, as-tu essayé ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Image imageBtn1 = new Image(display, "pics/zoom_in.png");

  3. #3
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par Jidefix Voir le message
    Bonjour,

    Par ailleurs, as-tu essayé ça?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Image imageBtn1 = new Image(display, "pics/zoom_in.png");
    Je doute que ça ne marche puisqu'il dit qu'il essaie d'executer le jar crée, donc je suppose qu'il n'y a de dossier pics dans le meme repertoire que je jar.

    Mais comme tu l'as dit, le mieux est de verifier si le fichier existe bien dans le jar en le decompressant avec winrar par exemple.

  4. #4
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ben en même temps l'erreur vient du fait que le path récupéré est le résultat d'un getResource, qui n'est pas syntaxiquement correct pour un accès filesystem, donc si ça se trouve les images sont bien la mais il ne les récupère pas de la bonne façon...
    De plus je ne sais pas quelle est cette classe Image, dans l'API awt j'ai juste trouvé un constructeur sans argument...

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    java.io.FileNotFoundException: file:\C:\Users\morchea\Documents\Projets\archi\archi2.jar!\pics\zoom_in.png (The filename, directory name, or volume label syntax is incorrect)
    l'erreur generée est un fileNotFound, ce qui veut dire que le fichier n'existe pas.

    As tu verifié si il n'y as pas de majuscule dans le nom de ton fichier?

  6. #6
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut
    Hello,
    mon .jar contient tous les fichiers. Si je le decompresse (winrar), j'obtient:

    archi2.jar ->

    archi2 contient mes classes
    archi2/META-INF
    archi2/org contient des librairies eclipse SWT
    archi2/pics contients mes pics

    D'ailleurs, en ecrivant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image imageBtn1 = new Image(display, "C:/Users/morchea/Documents/Projets/archi/archi2/pics/zoom_in.png");
    ,cela marche.
    Mais je ne comprends pas:
    -quel est le format correct du path pour acceder a un fichier a l'interieur de l'archive .jar ? Vu que je n'aurais normalement que le .jar, et pas son contenu desarchive.
    -file:\C:\Users\morchea\Documents\Projets\archi\archi2.jar!\pics\zoom_in.png semble etre le probleme et ne pas avoir un bon format.

    Morchea

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

Discussions similaires

  1. Lire un fichier PDF a partir de Delphi
    Par souminet dans le forum Débuter
    Réponses: 1
    Dernier message: 14/06/2008, 09h43
  2. afficher une fichier image a partir de MYSQL database
    Par ilyazi dans le forum Débuter
    Réponses: 2
    Dernier message: 19/04/2008, 09h08
  3. [PDA] Lire un fichier du PDA à partir d'un PC
    Par air75 dans le forum Développement Mobile en Java
    Réponses: 2
    Dernier message: 23/11/2007, 09h18
  4. Réponses: 1
    Dernier message: 17/01/2006, 07h42
  5. Comment lire un fichier image
    Par Charlemagne dans le forum DirectX
    Réponses: 9
    Dernier message: 12/03/2004, 00h22

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