JFreeChart在docker容器Linux环境下生成饼图柱状图折线图不显示中英文和字符,并且字符乱码问题解决(踩坑)

123 阅读2分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

JFreeChart在docker容器Linux环境下生成饼图柱状图折线图不显示中英文和字符,并且字符乱码问题解决(踩坑) 先说原因:就是因为Java docker镜像的基础镜像是轻量级版 没有JFreeChart设置的字符文件ttc文件,所以导致没有任何显示,甚至是空白,如下图所示

image.png

在windows上运行时JFreeChart没有出现,但是部署到Linux服务器时,JFreeChart出现了无字符的问题,究其原因,是因为Linux下缺少了JFreechart设置的字体,我们只需添加字体即可。

Font font = new Font("宋体", Font.BOLD, 12);

解决办法: 1、找到你liunx上的jdk安装路径,在jre/lib/fonts文件夹下新建一个fallback文件夹 2、文件夹的名称必须为fallback,请勿修改其他名称。 3、在fallback文件夹下添加simsun.ttc字体文件 下载地址:www.cr173.com/font/42194.…

系统字体路径在:

linux系统的字体目录在“/usr/share/”目录里,完整路径为“/usr/share/fonts”;字体目录下的一个子目录就是一种字体,里面包含了“.ttf”后缀的字体文件。

linux系统的字体目录在“/usr/share/”目录里,完整路径为“/usr/share/fonts”。

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。可能很多用户用不习惯系统自带的字体,我们可以自行安装其他字体。

安装方法:

首先要准备字体文件,一般是ttf作为后缀的。

找到系统的这个路径(字体的存放目录)

/usr/share/fonts

在其中新建一个目录,名字可以自己随便取,就用“win”吧。

把之前准备的字体文件拷贝进这个目录,(这里可能需要sudo的权限),然后依次运行下面的命令

1234cd /usr/share/fonts/win``sudo mkfontscale``sudo mkfontdir``sudo fc-cache

这样在目录下就会多两个文件,

  • fonts.dir
  • fonts.scale

安装完毕,可以使用相关的字体了

然后docker restart 项目就可以了