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 :

getRessourceStream depuis un jar -> ioException


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut getRessourceStream depuis un jar -> ioException
    Bonjour,
    voici mon souci j'essaye de charger une police particulière maPolice.ttf de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
        try {
          log.debug("Going to get font.");
          final InputStream iStreamFont =
            getClass().getResourceAsStream("/monPckage/res/maPolice.ttf");
          log.debug("input stream loaded " + iStreamFont);
          final Font iFont = Font.createFont(Font.TRUETYPE_FONT, iStreamFont);
          log.debug("Font created " + iFont);
          GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(iFont);
          log.debug("Font has been well load.");
        } catch (final FontFormatException iFontFormatException) {
          log.error("Can't load maPolice font", iFontFormatException);
        } catch (final IOException iIoException) {
          log.error("Can't load maPolice font", iIoException);
        }
    cela marche très bien depuis mon ide mais pas du tout depuis mon jar.

    Forcement j'ai pensé que cela venait d'un problème de classpath mais étonnamment si on regarde les logs :

    DEBUG MonpackageClientCommon.MainFrame.initialize(Unknown Source) - Going to get font.
    DEBUG MonpackageClientCommon.MainFrame.initialize(Unknown Source) - input stream loaded sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@1a80183
    ERROR MonpackageClientCommon.MainFrame.initialize(Unknown Source) - Can't load BleriotText-Roman font
    java.io.IOException: Problem reading font data.
    ...
    donc on dirait que le inputStream est trouvé mais que lors du createFont le thread courant ne la voit pas.

    Du coup j'ai essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Thread.currentThread()
            .getContextClassLoader().getResourceAsStream("/monPckage/res/maPolice.ttf");
    mais la effectivement le thread courent ne vois pas la ressource et j'ai un input stream null ds mes logs
    MainFrame.initialize(Unknown Source) - input stream loaded null
    Je suis un peu perdu si quelqu'un a une piste ??

  2. #2
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    quand on passe par le classloader, pas de "/" en tête. C'est pour ça que vous avez un null dans le deuxième cas et ça n'a rien à voir avec votre problème.

    Je crois plutot que d'une manière ou d'une autre, votre fichier ttf est corrompu. L'IOException se produit en cours de lecteur. Si la ressource n'était pas trouvée, vous auriez un null.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    merci en effet je m'étais orienté la dessus je suis en train de regarder ds mes scripts ant merci

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    alors j'ai extrait le font du jar est je l'ouvre correctement sous windows ..
    je peux l'utiliser sans probleme dans word :s

    De plus une fois mis ds mes fonts system la font se charge correctement quand je fait un new Font ("myFont.ttf , Font.PLAIN, 16);")

    du coup je ne pense pas que le ttf soit corrompu..

  5. #5
    Expert éminent
    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 : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pourriez vous afficher l'exception complète (stacktrace)?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    Je vous envoi ca par mp (explication ds le mp)

    sinon je vais tester de charger une autre ttf pour voir ce que ca donne

    edit : même problème si j'utilise une ttf de base windows

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

Discussions similaires

  1. Accéder à un fichier XML depuis un jar
    Par Janitrix dans le forum Langage
    Réponses: 2
    Dernier message: 06/01/2007, 17h35
  2. Pb sur la methode waitFor depuis un jar
    Par martin_o dans le forum Général Java
    Réponses: 3
    Dernier message: 06/04/2006, 17h34
  3. [classpath]classpath non chargé depuis le jar, le système,..
    Par Grummfy dans le forum Général Java
    Réponses: 5
    Dernier message: 12/01/2006, 17h28
  4. getRessource() d'un fichier local depuis un JAR
    Par romaintaz dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 03/08/2005, 12h11
  5. [JAR]ouverture de fichier texte depuis executables jar
    Par julien31 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 01/03/2005, 15h53

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