
原因: linux下没有对应的字体
对比代码
Graphics g=image.getGraphics();
//创建Grapchics2D对象
Graphics2D g2d=(Graphics2D)g;
//定义字体样式
Font mfont=new Font("宋体",Font.BOLD,40);
//定义随机数获取实例
Random random=new Random();
linux中查看所有字体 : fc-list
[root@izt4niaserlbj40xq71jslz fonts]# fc-list
/usr/share/fonts/lyx/eufm10.ttf: eufm10:style=LyX
/usr/share/fonts/lyx/cmsy10.ttf: cmsy10:style=LyX
/usr/share/fonts/lyx/msam10.ttf: msam10:style=LyX
/usr/share/fonts/lyx/cmmi10.ttf: cmmi10:style=LyX
/usr/share/fonts/zh_CN/TrueType/simsun.ttc: NSimSun,新宋体:style=Regular
/usr/share/fonts/lyx/wasy10.ttf: wasy10:style=LyX
/usr/share/fonts/lyx/esint10.ttf: esint10:style=LyX
/usr/share/fonts/zh_CN/TrueType/simsun.ttc: SimSun,宋体:style=Regular
/usr/shar

本文介绍了在Linux服务器上遇到Java生成的图片验证码显示为乱码的问题,原因是服务器缺少相应的字体。解决办法包括:使用`fc-list`查看系统字体,将Windows中的字体(如宋体simsun.ttc)复制到Linux的字体目录,并通过`fc-cache`更新字体缓存。同时,也需要将字体文件拷贝到Java的JRE字体目录并刷新缓存,以确保Java项目能识别新字体。
129万+

被折叠的 条评论
为什么被折叠?



