Linux服务器JRE中文字体设置,解决java.awt乱码、显示方块问题
最近因为需要在java应用中合成曲线图,使用了jfreechart库,但是发现图片中的中文全都显示成方块了。
根据网络上的经验,在创建图表之前,先设置主题ChartFactory.setChartTheme(standardChartTheme);
或者设置字体时用setFont(Font font),发现也不能解决问题。
后来意识到是服务器本身缺少中文字体的问题,Linux机器一般都是没有中文字体库的,所以在使用java.awt相关类生成图片时,输出的中文很可能显示乱码或者呈方块状。解决方案就是在服务器启动脚本里,加上安装中文字体库的步骤:
- 安装字体到系统中。
- 在JRE目录下创建fonts/callback目录。
- 将Linux系统的字体目录作为JRE下面的字体目录连接。
对应Docker命令:
安装字体
RUN yum -y install wqy-microhei-fonts wqy-zenhei-fonts
RUN mkdir -p /opt/xxx/java/jre/lib/fonts/fallback
RUN ln -s /usr/share/fonts /opt/xxx/java/jre/lib/fonts/fallback
这里可以选择任意开源中文字体,我用了文泉译测试。
验证:
- 在改动之前先登录机器,进入目录/usr/share/fonts,可以看到下面只有dejavu字体库。
- 在docker脚本中添加上述命令后,重新部署到服务器上,该目录下多了字体库wqy-microhei 和 wqy-zenhei。
- 这时再触发生成图片的服务,中文正常显示。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云科学家丁险峰:万物互联的价值在哪里?
工业互联网是消费互联网的下半场 各位同学,我叫丁险峰,花名柯镇。我是阿里云IoT事业部的首席科学家,负责阿里云物联网平台的建设,以及工业互联网平台的建设。 首先我想阐述一下,开源对于工业互联网的价值。 开源对于工业互联网这一个庞大工程是极其重要的。为什么要建设工业互联网?工业互联网的内容是什么?工业互联网的本质是数字化人类积累了200多年来的工业知识,以软件的形式或者数据的形式放在互联网上。原来的数字化图书馆是把文字数字化了,如果说工业领域的书的话,那么把物理知识、化学知识、数学公式等都用计算机的文字来表达,但还不是一段可以被调用的计算代码,但是人获取知识以后,还要编程序去控制机器。过去20年的互联网主要还是解决信息的存储、处理、传播的问题,而未来20年人类将更深入一层,把这些数学公式,仿真模型代码化,所以工业互联网将是一个巨大的工程,
- 下一篇
万人马拉松赛事,人脸识别系统如何快速、准确完成校验?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 大麦的人脸闸机在2019年杭州马拉松上成功的完成了刷脸入场功能的首秀,相比传统的马拉松入场核验方案在入场体验和入场效率上都有了很大的提升,下面介绍一下大麦的人脸识别是如何支持马拉松赛事的。 马拉松赛事流程介绍 马拉松赛事的流程主要分三步: 第一步,参赛者到马拉松官方网站报名,报名成功后会通知选手; 第二步,报名成功的选手需携带身份证到官方指定的地点领取装备; 第三步,比赛当天携带号码簿验票入场进行比赛。 我们面临的挑战是: 1、如何在指定时间内完成参赛者的装备领取工作:既要保证快速领取不造成人员积压,又要保证装备不会领错; 2、 如何保证比赛当天在短时间内完成几万人的入场核验工作。 大麦人脸识别解决方案 在介绍大麦的人脸识别方案之前,首先介绍人脸比对的几个常用术语: 1比1:1比1是指用照片跟人进行比对,通过算法判定照片和人是否是同一个人,简单理解就是证明“你就是你”。 1比N:1比N是指在N个人的照片库里(底库)进行查找,通过算法判定这个人是否在这些照片里面,通俗来讲就是“我是谁”。 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Red5直播服务器,属于Java语言的直播服务器
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS6,7,8上安装Nginx,支持https2.0的开启