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 ??