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 :

getResourceAsStream dans une API


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut getResourceAsStream dans une API
    Bonjour,

    Je sais que le sujet est recurant mais je ne trouve pas la solution.

    J'ai une API contenant dans images. Dans cette meme API j'ai une methode static permettant d'aller chercher ces images et qui contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    InputStream is;
                is = ClassLoader.getSystemClassLoader().getResourceAsStream("com/fdilogbox/tools/resources/flag/" + codeFlag.toLowerCase() + ".png");
    Si je lance les TU de cette API ca marche bien.

    Ca se complique lorsque j'utilise cette API dans une application, la, il ne trouve plus les images :-(

    Une idée? J'ai essayé pas mal de chose dont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Flag.class.getClassLoader().getResourceAsStream(...)
    Flag.class.getResourceAsStream(...)
    Mais ce ne marche pas.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Salut,

    Sans connaitre la structure exacte de ton application et la localisation du fameux fichier introuvable à l'exécution, pas facile de te donner une réponse claire

    Tu dis que ca ne marche pas dans ton appli.
    C'est quoi ton appli : un jar, un war, un ear, etc ?

    Ensuite, comment est packagé ton image dans ton appli ?
    Il est dans un jar, un war, etc ?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut
    Exacte

    Alors, mes images sont dans un jar. Le meme jar ou il y a ma methode static pour y acceder.

    Mon application est elle aussi dans un jar. Mais le jar de mes images n'est pas englober dans le jar de mon application mais mis a coté (classpath dans le manifest).

    J'espere qu'il y a toutes les info.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Salut,

    Merci pour les précisions
    Ca m'a l'air plutôt cohérent : tu utilises un chemin relatif à partir du System. Par contre, je suis pas sûr du résultat avec le classLoader que tu utilises. Perso, je ne l'utilise jamais pour charger manuellement une ressource.

    Essaye de remplacer ClassLoader.getSystemClassLoader().getResourceAsStreap() par
    System.class.getClassLoader().getResourceAsStream("/com/fdilogbox/tools/resources/flag/" + codeFlag.toLowerCase() + ".png");
    Note bien le / en début de chaine.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2008
    Messages : 184
    Par défaut
    Merci.

    Par contre j'ai une erreur : NullPointerException. sur le System.class.getClassLoader()

    Une idée?

  6. #6
    Membre chevronné Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Par défaut
    J'ai déjà été confronté plus ou moins au même genre de problème et parfois en bidouillant un peu, par exemple en copiant la ressource dans un fichier temporaire avant de l'exploiter, ça résous certains problème. (Mais il est évident que ça ne t'aideras pas à enlever ta NPE sur le System.class.getClassLoader)

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

Discussions similaires

  1. Licence GPL Mysql et code source, dans une API externe
    Par guillaume-13015 dans le forum Administration
    Réponses: 4
    Dernier message: 28/11/2012, 19h14
  2. Appel Sipdroid dans une api android
    Par S.Jihad dans le forum Android
    Réponses: 0
    Dernier message: 16/05/2011, 12h54
  3. Réponses: 0
    Dernier message: 17/01/2011, 12h09
  4. Comment couper la fénétre principal dans une api windows
    Par ALF-Teams dans le forum Visual C++
    Réponses: 6
    Dernier message: 25/08/2006, 15h30
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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