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

avec Java Discussion :

Jar et images


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut Jar et images
    Exactement le même probléme que Mon camarade de classe !
    A savoir ressources non trouver dans le jar !

    Sauf que la solution que vous lui avez trouver ne fonctionne pas chez moi.

    Voici les brides de code interessante : ( J'ai tenter principalement 2 methodes )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] array = new java.io.File(getClass().getClassLoader().getResource("/map").getPath()).list ();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] array = new java.io.File(getClass().getResource("/map").getPath()).list ();
    Voici mon MANIFEST.MF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Manifest-Version: 1.0
    Main-Class: simulation.Main
    Class-Path: Simulation.jar Simulation.jar
    Bien sur l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" java.lang.NullPointerException
       at simulation.InterfaceIntroduction$1Fl_Ask.run(InterfaceIntroduction.java:34)
       at simulation.InterfaceIntroduction.choixDuTerrain(InterfaceIntroduction.java:60)
       at simulation.Main.main(Main.java:15)
    Remarque :
    Hors Jar je trouve le bon chemin des cartes :
    file:/home/DidUngar/Prog/POO/simulation/map/

    Les images sont dans le jar ainsi que les cartes.

    Merci d'avance pour vos conseil avisé.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    C'est quoi, /map, comme ressource ?

    Que cherches-tu à obtenir, avec la formule getClass().getClassLoader().getResource("/map").getPath() ?

    Comment espères-tu arriver à un fichier existant avec l'expression new java.io.File(getClass().getClassLoader().getResource("/map").getPath()) ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    map est un repertoire.
    Voici mon arborescence :
    Simulation ( mon paquage )
    \- Mes Classes ........
    \- Main ( lancement )
    \- InterfaceIntroduction ( qui permet de selectionner la carte désiré )
    \- .........
    Simulation / img ( mes images )
    \- favicon.jpg
    \- ..............
    Simulation / map ( liste des mes fichier text )
    \- chemin.txt
    \- route.txt

    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JComboBox lstRue = new JComboBox();
    .......
    for (int i = 0; i < array.length; ++i)
    lstRue.addItem(array[i].replace(".txt", ""));
    fl.add("Center",lstRue);
    Le but est donc de lister les éléments des dans le repertoire /map.

    Et se probléme si il n'est pas résolut risque de se retrouver dans les images dans la suite du progamme ou j'effectue de l'affichage plus propre.

    Avec ce si je peut répondre a ta question :
    getClass().getClassLoader().getResource("/map").getPath()
    Demande ( selon moi ) :
    Le chemin du dossier map par apport a la classe actuel
    donc dans le jar ma classe est dans Simulation
    je devrai donc avoir /Simulation/map
    Qui est le chemin par apport a la racine du jar.

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Une ressource, en tous les cas en java, ne peut pas être un répertoire.

    La conséquence notable (je n'ai pas dit que c'était bien, hein, j'ai dit que c'était notable) est que l'on ne peut pas obtenir la liste des ressources d'une application. (à moins de manipulations à la va-comme-je-te-pousse).

    Remarque que, fondamentalement, cela dépend du ClassLoader, et on pourrait parfaitement imaginer un ClassLoader faisant une liste de ressources dans l'équivalent d'un répertoire. Mais le ClassLoader de base ne le fait pas, et je n'en connais aucun qui le fasse.

    Désolé. Quel problème voudrais-tu résoudre, pourquoi voulais-tu faire ça, sinon ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2006
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 111
    Par défaut
    Je voudrez permettre de selectionner la carte ou va s'effectuer la simulation.
    En permettant des cartes en add-on plus tard si on as le temp.
    Sans avoir a remettre les mains dans le code , en prenant le risque de tout déglinguer !
    d'ou la liste des cartes = liste des fichiers dans le repertoire
    ( ca fonctionne hors jar )

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Évidemment que ça fonctionne hors jar ! Mais en ressource de jar, ça ne fonctionne pas, c'est tout.

    Dans un contexte java c'est un problème plus difficile à résoudre qu'on ne pense, car il ne faut pas oublier qu'un programme java peut se trouver sur un réseau, n'importe où n'importe comment, et qu'il ne sait pas, à priori, de quoi sont constituées ses classes ; il peut très bien ne même pas y avoir de jar.

    Quand tu programmes en Groovy, par exemple, tu as des classes java, mais pas de jar. (sauf les jar de groovy).

    Je pense que la bonne approche est de ne pas mettre tes cartes dans un des jars en tant que ressource, mais dans un zip dont tu passerais l'adresse en paramètre de ton appli, ou par tout autre moyen. (ce zip peut même être une ressource, d'ailleurs). Au départ tu dézippes ce zip dans un répertoire local et... tu peux enfin faire des listes de répertoires !

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

Discussions similaires

  1. Un .Jar avec images
    Par Neotaxi dans le forum Langage
    Réponses: 11
    Dernier message: 07/05/2012, 12h02
  2. Problème exportation JAR avec images
    Par oliwan dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 22/06/2009, 20h08
  3. [JAR] Les images manquent
    Par doons dans le forum Général Java
    Réponses: 3
    Dernier message: 23/10/2008, 09h22
  4. Jar et Images
    Par Ouaibou dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 20/04/2008, 23h03
  5. [Applet][JTextPane][HTML]Accès a une image du JAR
    Par SamDaKap dans le forum Applets
    Réponses: 4
    Dernier message: 10/08/2004, 16h17

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