Linux服务器JRE中文字体设置,解决java.awt乱码、显示方块问题

简介: 最近因为需要在java应用中合成曲线图,使用了jfreechart库,但是发现图片中的中文全都显示成方块了。Linux机器一般都是没有中文字体的,所以在使用java.awt相关类生成图片时,输出的中文很可能显示乱码或者呈方块状。解决方案就是在服务器启动脚本里,加上安装中文字体的步骤。

云栖号:https://yqh.aliyun.com
第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策!

最近因为需要在java应用中合成曲线图,使用了jfreechart库,但是发现图片中的中文全都显示成方块了。
根据网络上的经验,在创建图表之前,先设置主题ChartFactory.setChartTheme(standardChartTheme);
或者设置字体时用setFont(Font font),发现也不能解决问题。
后来意识到是服务器本身缺少中文字体的问题,Linux机器一般都是没有中文字体库的,所以在使用java.awt相关类生成图片时,输出的中文很可能显示乱码或者呈方块状。解决方案就是在服务器启动脚本里,加上安装中文字体库的步骤:

  1. 安装字体到系统中。
  2. 在JRE目录下创建fonts/callback目录。
  3. 将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

这里可以选择任意开源中文字体,我用了文泉译测试。

验证:

  1. 在改动之前先登录机器,进入目录/usr/share/fonts,可以看到下面只有dejavu字体库。
  2. 在docker脚本中添加上述命令后,重新部署到服务器上,该目录下多了字体库wqy-microhei 和 wqy-zenhei。
  3. 这时再触发生成图片的服务,中文正常显示。

_2020_03_17_15_56_26

云栖号在线课堂,每天都有产品技术专家分享
立即加入圈子:https://c.tb.cn/F3.Z8gvnK
与专家面对面,及时了解课程最新动态!

原文发布时间:2020-03-17
本文作者:牧码
本文来自:“阿里云云栖社区”,了解相关信息可以关注“阿里云云栖社区

目录
相关文章
|
8天前
|
关系型数据库 应用服务中间件 Linux
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
36 1
Linux云服务器如何搭建LNMP环境
|
2月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
3月前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
234 6
W9
|
4月前
|
运维 关系型数据库 MySQL
轻松管理Linux服务器的5个优秀管理面板
Websoft9 应用管理平台,github 2k star 开源软件,既有200+的优秀开源软件商店,一键安装。又有可视化的Linux管理面板,文件、数据库、ssl证书方便快捷管理。
W9
414 1
|
4月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
154 4
|
3月前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
4月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
78 0
|
24天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
58 23
Linux系统之whereis命令的基本使用
|
4月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
407 8
|
11天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
74 25

热门文章

最新文章