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 :

inclure des ressources dans un jar


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut inclure des ressources dans un jar
    Salut tout le monde!
    voici une semaine que je cherche une solution pour mon problème mais rien n'est résolu!
    je suis en train de créer un jar exécutable pour ma petite application dans laquelle il y a des images,un fichier texte (à ouvrir) que je n'arrive pas à faire fonctionner sous mon jar sur une machine autre que mon pc(le jar marche bien sur mon ordi,et l'appli marche comme prévu sur l'ide).
    NB:pour créer le jar,j'ai utilisé fatjar.
    SVP aidez-moi

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Et quel est le problème exactement ???

    a++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Salut adiguba!
    le problème est que les images et les fichiers textes que nécessite l'application ne marchent pas sur une machine autre que la mienne.
    j'ai tenté de les ajouter quand je crée le jar avec le fatjar mais les fichiers sont inclus dans le jar mais ne sont pas appelés lors du launch de l'appli sur la machine cible!Donc ce n'est pas de cette façon que l'on ajoute des ressources avec fatjar!

  4. #4
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut
    Montre nous comment tu essaie d'y acceder à ces fichiers

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Torg666 Voir le message
    Montre nous comment tu essaie d'y acceder à ces fichiers
    Ainsi que les erreurs produites par ton application...


    Parce que sinon je ne vois pas comment on pourrait deviner l'origine de ton problème !!!

    a++

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    merci pour votre aide
    voici comment je fais sous fatjar: voir image jointe.
    le MySQL connector marche bien et la connexion a la base de donnees est faite,mais les autres fichiers ne s'executent pas sur l'appli !
    juste pour les erreurs,comment pourrai-je les connaitre?je ne fais que executer le jar sur un autre pc,donc il ne m'affiche rien!
    Images attachées Images attachées  

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vamos Voir le message
    juste pour les erreurs,comment pourrai-je les connaitre?je ne fais que executer le jar sur un autre pc,donc il ne m'affiche rien!
    Exécutes le jar en ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar tonfichier.jar
    a++

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    merci adiGuba pour ton aide
    j'ai fait ce que tu m'as conseillé
    erreurs:
    java.io.FileNotFoundException .\ressources\calcul.txt
    java.lang.illegalArgumentException the file ressources\nouveau.txt doesn't exist
    ressources est un dossier qui contient mes fichiers qu'inclue l'appli,il se trouve dans le dossier project.

  9. #9
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut
    Citation Envoyé par Torg666 Voir le message
    Montre nous comment tu essaie d'y acceder à ces fichiers
    Désolé, je precise un peu:
    Montre nous comment tu accede au fichier dans ton code, c'été pour voir si tu a fais un getressource ou si tu as codé ca comme un barbare

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Salut Torg666!
    pour le chargement de l'image et de l'icone:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Toolkit	tk = Toolkit.getDefaultToolkit ();
    		Image	im = tk.getImage ("./ressources/logosante.gif");
    		setIconImage (im);
     
    		icone = new ImageIcon("./ressources/logosante.gif");	//Affichage d'une Image
    	    pre =new JLabel(icone);
    	    g.gridx=g.gridy=0;
    	    add(pre,g);
    pour les deux fichiers texte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     File fin = new File("./ressources/calcul.txt");
     
     
          File fout = new File("./ressources/nouveau.txt");
    pour l'ouverture du fichier texte dans le bloc note,j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Desktop desktop = Desktop.getDesktop ();
    desktop.open (new File ("ressources/nouveau.txt"));

  11. #11
    Membre actif Avatar de Torg666
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 230
    Points : 254
    Points
    254
    Par défaut
    essai par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Image	im = tk.getImage (getClass().getResource("logosante.gif"));
    Ca suppose que tu es ajouté le dossier ressources au classpath.
    Corrigé moi si je me trompe

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    salut!
    desole pour le retard!j'etais dans une bataille avec ce getClass().getSource(),et voila toujours ami de l'echec!
    en fait, çà déclenche une exception fatale qui ne laisse même pas apparaitre la ère fenêtre.lol
    Uncaught error fetching image:
    java.lang.NullPointerException
    at sun.awt.image.URLImageSource.getConnection(Unknown Source)
    at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
    at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
    at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
    at sun.awt.image.ImageFetcher.run(Unknown Source)
    quel est le remède pour cette maudite exception?

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Pour faire simple. Pour toutes tes images, fichirs etc inclus dans le jar, tu dois remplacer ce genre de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File f = new File("./ressources/calcul.txt")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL u = getClass().getRessourceAsStream("/ressources/calcul.txt");
    (Note bien l'absence de "." dans mon cas, ca permet d'indiquer la racine du jar).

    Il faut aussi évidement qu'il y aie un dossier "/ressources" à la racine de ton jar (peut être vérifié en ouvrant le jar avec winzip par exemple).

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    salut les gars!
    je suis bloqué!la mémé exception qui revient!je ne sais pas comment la traiter!
    @slim_java:comment je peux creer le jar moi meme en y incluant,le jar de Mysql connetor et les ressources?
    merci pour votre aide les amis!

  15. #15
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    t'as vérifié que tes resources sont bien dans ton jar et au bon endroit par rapport à ce que tu essaie de faire?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    t'as vérifié que tes resources sont bien dans ton jar et au bon endroit par rapport à ce que tu essaie de faire?
    Salut tchize_
    pour ta question,j'ai vérifié ceci plusieurs fois sans résultat!
    voila ce que j'ai fait cette fois;
    j'ai copié l'image dans le dossier bin du projet,l'exception ne se lance pas,et le jar inclut cette image quand je l'exécute sur un autre PC.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    URL fUrl = getClass().getResource("logosante.gif");
    		Image image = Toolkit.getDefaultToolkit().getImage(fUrl);
    		System.out.println(""+fUrl);
    		setIconImage (image);
    quand je compile:voila ce que j'obtiens
    file:/C:/Documents%20and%20Settings/user/workspace/gestion%c3%a9/bin/logosante.gif
    pourquoi et comment ca marche avec le bin et l'autre dossier non,je ne sais pas!
    pour employer la même chose avec les fichier textes;comment je peux ouvrir,construire un File() ;File Fin=new File("") avec son url.
    Merci!

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    les fichiers sont sur le système de fichier, les ressources sont dans le classpath, toute la nuance est là. Si ton application n'est pas packagée dans un jar, le classpath correspondra à des fichiers de ton système de fichier et l'url pointera sur ces fichiers directement (comme l'exemple que t'as indiqué). Pour ne pas avoir de surpris avec les jar, il vaux mieux systématiquement utiliser les ressources. En effet, une fois toutes tes images packagées dans un jar, elle ne seront plus accessbile par File. File st donc à réserver pour des fichiers, comme par exemple un document que l'utilisateur voudrais enregistrer, une configuration que tu voudrais lire dans la home directory de l'utilisateur, etc. Si t'arive pas à charger tes ressources avec getRessource, c'est que tu ne les a pas incluses dans le jar.

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    les fichiers sont sur le système de fichier, les ressources sont dans le classpath, toute la nuance est là. Si ton application n'est pas packagée dans un jar, le classpath correspondra à des fichiers de ton système de fichier et l'url pointera sur ces fichiers directement (comme l'exemple que t'as indiqué). Pour ne pas avoir de surpris avec les jar, il vaux mieux systématiquement utiliser les ressources. En effet, une fois toutes tes images packagées dans un jar, elle ne seront plus accessbile par File. File st donc à réserver pour des fichiers, comme par exemple un document que l'utilisateur voudrais enregistrer, une configuration que tu voudrais lire dans la home directory de l'utilisateur, etc. Si t'arive pas à charger tes ressources avec getRessource, c'est que tu ne les a pas incluses dans le jar.
    Desolé tchize_,j'ai pas tres bien compris!
    est ce que cela veut dire que je ne pourrais pas utiliser mes fichiers textes dans le jar(lire a partir des fichiers et y écrire )!
    ca serait vraiment une catastrophe!
    ecoute les images que j'ai incluses dans le jar avec la methode getClass.getRessource marchent bien sous le jar,il me reste le probleme des fichiers textes.je tente de procéder de la même façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	URL urlfin = getClass().getResource("calcul.txt");
    		URL urlfout = getClass().getResource("nouveau.txt");
    	        fin = new File(urlfin.toURI());
                    fout = new File(urlfout.toURI());
    mais ça déclenche cette exception lors de l'exécution du jar.
    l'exception est:
    java.lang.IllegalArgumentException: URI is not hierarchical
    qu'est ce que je peux faire ?est ce que vous avez une alternative autre que celle que je propose?

  20. #20
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par vamos Voir le message
    est ce que cela veut dire que je ne pourrais pas utiliser mes fichiers textes dans le jar(lire a partir des fichiers et y écrire )!
    ca serait vraiment une catastrophe!
    non pas du tout . on veut simplement te dire que tes ressources sont pas incluses dans ton jar

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ANT] Débutant : inclure des libs dans un JAR
    Par Tino13 dans le forum ANT
    Réponses: 4
    Dernier message: 29/01/2008, 13h31
  2. inclure des libs dans un jar
    Par Cram_N7 dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2007, 15h35
  3. inclure des resources dans le jar avec build-impl.xml
    Par broumbroum dans le forum NetBeans
    Réponses: 2
    Dernier message: 08/01/2007, 15h24
  4. inclure des fichiers dans un .jar
    Par cysboy dans le forum Multimédia
    Réponses: 3
    Dernier message: 11/09/2006, 13h56
  5. [JAR][DLL][path] inclure des DLLs dans un jar
    Par blaz dans le forum Général Java
    Réponses: 5
    Dernier message: 28/07/2005, 12h29

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