阿里云Linux服務(wù)器下Java驗(yàn)證碼亂碼問題解決

問題描述:阿里云新部署的Linux服務(wù)器,安裝后Java運(yùn)行環(huán)境后,系統(tǒng)登錄時發(fā)現(xiàn)驗(yàn)證碼是亂碼。
原因:服務(wù)器缺失驗(yàn)證碼所需要的相應(yīng)字體庫。
解決方案:
1. 首先找到程序代碼中生成驗(yàn)證碼的地方所使用的的字體,比如是"宋體"。

//設(shè)置字體
Font font = new Font("宋體", Font.BOLD, 16);

2. SSH登錄服務(wù)器查看服務(wù)器默認(rèn)字體庫,沒有宋體

#fc-match

3. 從Windows系統(tǒng)中拷貝字體
從Windows系統(tǒng)中拷貝相應(yīng)的字體到Linux服務(wù)器相應(yīng)位置即可。
打開C:\Windows\Fonts目錄,選中“宋體”,拷貝到其他文件夾中,可以看到simsun.ttc文件就是所需要的字體。當(dāng)然也可以使用類似方式拷貝所有你需要的字體。

宋體

4. 拷貝到Linux服務(wù)器的默認(rèn)字體庫,一般默認(rèn)在/usr/share/fonts/目錄下。
5. 執(zhí)行如下命令更新字體緩存

#fc-cache

6. 再次查看默認(rèn)字體

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

7. 重啟項(xiàng)目Tomcat服務(wù)器,再次訪問驗(yàn)證碼正常。

注:如果上述步驟沒能使字體生效,可以嘗試第二種方式,即把字體文件拷貝到服務(wù)器的 {JAVA_HOME}/jre/lib/fonts目錄下,使用fc-cache命令重新載入字體配置,清除字體緩存,然后重啟項(xiàng)目即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容