阿里云Linux服务器下Java验证码乱码问题解决

问题描述:阿里云新部署的Linux服务器,安装后Java运行环境后,系统登录时发现验证码是乱码。
原因:服务器缺失验证码所需要的相应字体库。
解决方案:
1. 首先找到程序代码中生成验证码的地方所使用的的字体,比如是"宋体"。

//设置字体
Font font = new Font("宋体", Font.BOLD, 16);

2. SSH登录服务器查看服务器默认字体库,没有宋体

#fc-match

3. 从Windows系统中拷贝字体
从Windows系统中拷贝相应的字体到Linux服务器相应位置即可。
打开C:\Windows\Fonts目录,选中“宋体”,拷贝到其他文件夹中,可以看到simsun.ttc文件就是所需要的字体。当然也可以使用类似方式拷贝所有你需要的字体。

阿里云Linux服务器下Java验证码乱码问题解决_第1张图片
宋体

4. 拷贝到Linux服务器的默认字体库,一般默认在/usr/share/fonts/目录下。
5. 执行如下命令更新字体缓存

#fc-cache

6. 再次查看默认字体

#fc-match
simsun.ttc: "宋体" "Regular"

7. 重启项目Tomcat服务器,再次访问验证码正常。

注:如果上述步骤没能使字体生效,可以尝试第二种方式,即把字体文件拷贝到服务器的 {JAVA_HOME}/jre/lib/fonts目录下,使用fc-cache命令重新载入字体配置,清除字体缓存,然后重启项目即可。

你可能感兴趣的:(阿里云Linux服务器下Java验证码乱码问题解决)