Linux环境下部署jasperreport出现net.sf.jasperreports.engine.util.JRFontNotFoundException
如题所示的错误完整语句如下:
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相关推荐
- 解决Linux下部署使用JasperReport的项目的错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' i
CentOS 中部署JasperReport时出错: net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体' is no ...
- 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. 这是由 ...
- 解决CentOS 中部署JasperReport时出错的问题。错误:net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '宋体
解决方法: 1.把需要用到的字体(可以直接拷贝windows系统的C:\WINDOWS\Fonts 下的相关字体)拷贝当前项目的classpath下,一般为classes目录下 2.在classpat ...
- 【Linux】手把手教你在 Linux 环境下部署 Oracle 数据库!
来源:公众号[杰哥的IT之旅] 作者:三笠 相信大家第一次接触 Oracle 数据库时,大多数是在 windows 环境下安装,方便快捷,基本上可以说是一直下一步就能顺利安装成功.然而企业级的数据库, ...
- Linux部署oracle11g,linux环境下部署Oracle11g
一.部署准备 1.查看本地ssh服务 Linux系统下安装启动ssh服务: 1.检查是否装了SSH包 rpm-qa |grep ssh 2.没有安装SSH直接YUM安装 yuminstall open ...
- linux上部署mysql服务_在Linux环境下部署MySql服务
之前有下载部署过几次,但是每次都会踩一些坑.特此记录在liunx下部署安装mysql的基本步骤: 1.卸载老版本的mysql find / -name mysql|xargs rm -rf 查 ...
- Linux环境下部署Dubbo 监控中心
1.安装JDK 2.安装Tomcat 3.部署监控中心: [root@localhost ~]# cp dubbo-admin-2.5.4.war apache-tomcat-7.0.47/webap ...
- Linux环境下部署redis教程详解
部署redis 一. 服务器资源 服务名称:Linux服务器 IP:[请查看资源分配文档] 操作系统:CentOS 6.9 x64 二.下载redis 压缩包 下载地址:redis.io 这里下载的r ...
- Linux 环境下部署Hexagon SDK 开发环境
https://developer.qualcomm.com/software/hexagon-dsp-sdk/tools 链接下下载qualcomm_hexagon_sdk_3_4_3_linux ...
最新文章
- C++中的位运算和|
- 无障碍开发(九)之tabindex属性
- java中po代码示例_java操作oracle常用的示例代码详解
- JavaScript-面向对象 class 继承
- P1428 小鱼比可爱(python3实现)
- wxpython使窗口重新显示出来_wxPython实现窗口在任务栏中闪烁
- php ajax base64,jQuery实现文件编码成base64并通过AJAX上传的方法
- 关于Swift中的forEach(_:)和for-in loop
- VueTreeselect出现unknown解决方法
- 微信统一支付接口返回“签名错误”的可能原因
- ubuntu14.04系统下mips交叉编译环境搭建
- 蓝牙(Android使用)基本原理
- 录视频时帧数越高越好么?
- android手机设置固定dns,手机怎么设置dns 手机设置dns方法【详解】
- u)dym)l$_@3*0y3u_pvy@34ky1co1j$lfd1wp-w*8x%30@f7t$
- java 开发多if else 代码优化
- 业余草告诉你甲骨文正式宣布将 Java EE 移交给 Eclipse 基金会
- Markdown小菜狗子笔记
- Python合并PDF、操作图片以及生成验证码
- windows下nginx+lua+redis实现短域名服务
热门文章
- 踩坑:Spring静态变量/构造函数注入失败(注入为null)问题的解决方案
- Android项目jenkins自动化构建之360加固(一)
- 蓝湖怎么切图标注_蓝湖让APP设计师再也不用每天手动标注和切图了
- Django中的内置过滤器
- 阿里云视频点播报错Forbidden.RAM
- 《ZigBee开发笔记》第四部分 提高篇-第9章 CC2530基于GenericApp无线收发实验
- RHCE(4)给openlab搭建web网站
- 三相异步电动机的机械特性
- 数组与字符串长度 — C语言经典方法
- 解决SpringBoot整合SpringData JPA的PagingAndSortingRepository的Sort排序时遇到的错误:has protected access in ‘org.sp