如题所示的错误完整语句如下:

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

这是一个很闹心的问题,你会发现你在windows环境开发,报表显示的好好的,但是开开心心部署到lInux环境时,可能就会给你泼如题所示的冷水。

要解决这个问题要从2方面考虑:

1)Linux在没有安装报表所需中文字体的情况:

第一步:安装方法——转到Linux环境下的/usr/share/fonts路径下,新建一个dir如zh_CN,把准备好的中文字体传到该目录下(中文字体的获取可以从windows环境的C:/Windows/Fonts下拷贝~),再执行如下命令:

mkfontscale
mkfontdir
fc-cache -fv 

即可成功安装字体。可以执行命令:

fc-list

查看是否安装好字体。

第二步:(很重要!!)在项目的classes目录下加一个jasperreports.properties配置文件,添加内容如下:

net.sf.jasperreports.awt.ignore.missing.font=true

再重启项目即可~~

(以上方法亲测有效)

2)考虑到可移植性,把字体打包成jar放在项目里面。

这种方法我尝试了并没有起作用,可能是因为之前我已成功在Linux里安装好了中文字体的原因?但是我觉得也是一个比较靠谱的办法,所以记录下,可能以后用得着呢。。

前往官方社区下载jasperreports-6.2.0的完整版项目,解压后里面会有很多demo,找到fonts这个项目:

<%=你的jasperreport目录%>/demo/fonts.。

再转到net\sf\jasperreports\fonts\dejavu目录,把里面自带的字体删除,换上你自己的中文字体如STFANGSO.TTF(仿宋),然后修改net\sf\jasperreports\fonts下面的fonts.xml,这里以仿宋为例吧:

<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies><fontFamily name="仿宋"><normal>net/sf/jasperreports/fonts/dejavu/STFANGSO.TTF</normal><bold>net/sf/jasperreports/fonts/dejavu/STFANGSO.TTF</bold><italic>net/sf/jasperreports/fonts/dejavu/STFANGSO.TTF</italic><boldItalic>net/sf/jasperreports/fonts/dejavu/STFANGSO.TTF</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'仿宋', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'仿宋', Arial, Helvetica, sans-serif</export></exportFonts><!--<locales><locale>en_US</locale><locale>de_DE</locale></locales>--></fontFamily>
</fontFamilies>

好了,现在开始着手把修改后的字体项目打成jar包:

在dos窗口转至:jasperreports-6.2.0\demo\fonts,执行如下命令:

jar cvf fonts.jar *

fonts.jar即是你封装好的字体jar,可以反编译查看其大致结构:


 然后把这个jar包放到classpath下,同时也别忘了在classes目录下加上一个如1)情况所讲的配置文件。

【注:这种方法我目前还没有测通,可能是因为已经在Linux安装好字体的原因~】

3)其他方法

参考于网络但大多数都没测通,可能情况不同采取的方法不同。

Linux环境下部署jasperreport出现net.sf.jasperreports.engine.util.JRFontNotFoundException相关推荐

  1. 解决Linux下部署使用JasperReport的项目的错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' i

    CentOS 中部署JasperReport时出错: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' is no ...

  2. net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 华文宋体 is not available to the JVM. S

    net.sf.jasperreports.engine.util.JRFontNotFoundException: Font 'xx' is not available to the JVM. 这是由 ...

  3. 解决CentOS 中部署JasperReport时出错的问题。错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体

    解决方法: 1.把需要用到的字体(可以直接拷贝windows系统的C:\WINDOWS\Fonts 下的相关字体)拷贝当前项目的classpath下,一般为classes目录下 2.在classpat ...

  4. 【Linux】手把手教你在 Linux 环境下部署 Oracle 数据库!

    来源:公众号[杰哥的IT之旅] 作者:三笠 相信大家第一次接触 Oracle 数据库时,大多数是在 windows 环境下安装,方便快捷,基本上可以说是一直下一步就能顺利安装成功.然而企业级的数据库, ...

  5. Linux部署oracle11g,linux环境下部署Oracle11g

    一.部署准备 1.查看本地ssh服务 Linux系统下安装启动ssh服务: 1.检查是否装了SSH包 rpm-qa |grep ssh 2.没有安装SSH直接YUM安装 yuminstall open ...

  6. linux上部署mysql服务_在Linux环境下部署MySql服务

    之前有下载部署过几次,但是每次都会踩一些坑.特此记录在liunx下部署安装mysql的基本步骤: 1.卸载老版本的mysql find / -name mysql|xargs rm -rf     查 ...

  7. Linux环境下部署Dubbo 监控中心

    1.安装JDK 2.安装Tomcat 3.部署监控中心: [root@localhost ~]# cp dubbo-admin-2.5.4.war apache-tomcat-7.0.47/webap ...

  8. Linux环境下部署redis教程详解

    部署redis 一. 服务器资源 服务名称:Linux服务器 IP:[请查看资源分配文档] 操作系统:CentOS 6.9 x64 二.下载redis 压缩包 下载地址:redis.io 这里下载的r ...

  9. Linux 环境下部署Hexagon SDK 开发环境

    https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools  链接下下载qualcomm_hexagon_sdk_3_4_3_linux ...

最新文章

  1. C++中的位运算和|
  2. 无障碍开发(九)之tabindex属性
  3. java中po代码示例_java操作oracle常用的示例代码详解
  4. JavaScript-面向对象 class 继承
  5. P1428 小鱼比可爱(python3实现)
  6. wxpython使窗口重新显示出来_wxPython实现窗口在任务栏中闪烁
  7. php ajax base64,jQuery实现文件编码成base64并通过AJAX上传的方法
  8. 关于Swift中的forEach(_:)和for-in loop
  9. VueTreeselect出现unknown解决方法
  10. 微信统一支付接口返回“签名错误”的可能原因
  11. ubuntu14.04系统下mips交叉编译环境搭建
  12. 蓝牙(Android使用)基本原理
  13. 录视频时帧数越高越好么?
  14. android手机设置固定dns,手机怎么设置dns 手机设置dns方法【详解】
  15. u)dym)l$_@3*0y3u_pvy@34ky1co1j$lfd1wp-w*8x%30@f7t$
  16. java 开发多if else 代码优化
  17. 业余草告诉你甲骨文正式宣布将 Java EE 移交给 Eclipse 基金会
  18. Markdown小菜狗子笔记
  19. Python合并PDF、操作图片以及生成验证码
  20. windows下nginx+lua+redis实现短域名服务

热门文章

  1. 踩坑:Spring静态变量/构造函数注入失败(注入为null)问题的解决方案
  2. Android项目jenkins自动化构建之360加固(一)
  3. 蓝湖怎么切图标注_蓝湖让APP设计师再也不用每天手动标注和切图了
  4. Django中的内置过滤器
  5. 阿里云视频点播报错Forbidden.RAM
  6. 《ZigBee开发笔记》第四部分 提高篇-第9章 CC2530基于GenericApp无线收发实验
  7. RHCE(4)给openlab搭建web网站
  8. 三相异步电动机的机械特性
  9. 数组与字符串长度 — C语言经典方法
  10. 解决SpringBoot整合SpringData JPA的PagingAndSortingRepository的Sort排序时遇到的错误:has protected access in ‘org.sp