La police de caractère Arial " n'est pas disponible à la JVM

Je suis en train de travailler sur un projet en Java qui utilise Jasperreports. J'ai travaillé plusieurs fois dans d'autres projets à l'aide de la même technologie, et j'ai eu le même problème lorsque vous essayez d'imprimer un rapport dans un environnement Unix.

Mon projet utilise:

  • JBoss 4.2.3.GA
  • Java 1.6
  • Jasperreports 4.7.0

L'exception renvoyée est:

net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'Arial' is not available to the JVM. See the Javadoc for more details.

J'ai trouvé une solution pour résoudre ce problème et ir fonctionne vraiment:

sudo apt-get install msttcorefonts

Cependant, je veux comprendre comment Jasper fonctionne avec les polices, et comment il recherche ce les polices installées dans des environnements Unix. Peut-être une meilleure question est: comment la JVM poignées natif de la police? Quelqu'un peut-il me donner une explication détaillée sur ce sujet? Comment sont-système de polices disponibles pour la JVM lors de l'exécution?

Vous devriez lire à propos de Police Extensions mécanisme. Vous pouvez également trouver plus de détails dans JasperReports Guide Ultime. Pour mieux comprendre, vous pouvez explorer les fichiers source de JR moteur
Est-il une source pour cette JVM docs?
Que voulez-vous dire?
J'ai trouvé ce lien intéressant expliquant comment la machine fonctionne avec des polices de caractères: docs.oracle.com/javase/6/docs/technotes/guides/intl/font.html. Je pense que c'est l'information que je cherchais.
J'ai le même problème de l'OP et j'ai d'utilisation JasperReports police extensions, donc mes fichiers de police sont dans un bocal dans mon application. Je ne comprends pas pourquoi JVM ne pouvez pas les trouver. Dans beaucoup de messages de gens suggèrent l'installation de la police dans l'OS, mais ce serait briser le but de la police des extensions.

OriginalL'auteur gdfbarbosa | 2012-09-14