字体'Arial'不可用于JVM

时间:2012-09-14 13:30:27

标签: java jboss jvm jasper-reports

我正在开发一个使用Jasperreports的Java项目。我在使用相同技术的其他项目中多次工作,在尝试在Unix环境中打印报告时遇到了同样的问题。

我的项目使用:

  • JBoss 4.2.3.GA
  • Java 1.6
  • Jasperreports 4.7.0

抛出的异常是:

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

我找到了一个解决这个问题的常用解决方案,而且确实有效:

sudo apt-get install msttcorefonts

但是,我想了解Jasper如何使用字体,以及如何搜索Unix环境中安装的字体。也许更好的问题是:JVM如何处理原生字体?谁能给我一个关于这个主题的详细解释?如何在运行时为JVM提供系统字体?

6 个答案:

答案 0 :(得分:4)

Java要求操作系统提供字体。工作原理取决于操作系统。

http://en.wikipedia.org/wiki/Arial表示它已安装在MS-Windows和MAC OSX上

答案 1 :(得分:2)

如果您不想轻松下载罐子的麻烦,那么只需转到软件中心并点击安装 Ubuntu受限制的附加功能。此软件包不仅会安装MS字体,还会为受版权限制的应用程序提供其他支持。

这适用于Ubuntu Systems。

答案 2 :(得分:0)

我在Jasper 5.0上也遇到了同样的问题。我已按照以下步骤操作:

  1. 放置jasper-fonts.jar;
  2. 在linux中安装缺少的字体;
  3. 重新启动JBoss服务器。

答案 3 :(得分:0)

2015年更新:

将此添加到(或取消注释)/etc/apt/sources.list

deb http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

然后运行:

sudo apt-get update
sudo apt-get install msttcorefonts

答案 4 :(得分:0)

for OpenSuse

验证字体在SO上是否可用 fc-list | grep" Arial"

安装以下rpm sudo rpm -ivh msttcore-fonts-2.0-3.noarch.rpm

或从页面下载:

http://www.mjmwired.net/resources/mjm-fedora-f11.html#ttf

安装rpm

再次验证 fc-list | grep" Arial"

重新启动应用程序服务器

答案 5 :(得分:0)

这拯救了我的一天!

http://jasperstarter.cenote.de/usage.html#Reports_with_custom_fonts

使用自定义字体的报告

Jaspersoft Studio可以选择创建字体的jar文件。只需将这个jar文件放入JasperStarter的jdbc文件夹中即可。