驗證碼無法正常顯示,提示Could not initialize class sun.awt.X11GraphicsEnvironment

在Web開發(fā)中使用驗證碼時可能遇到的問題:
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

原因:
驗證碼采用awt圖形處理并內(nèi)存中生成,java程序會去尋找linux上的圖形界面是否啟動 ,如linux缺少組件則, 缺少了顯示設(shè)備、鍵盤或鼠標會報這個錯誤;
所以需要開啟無頭模式, Headless模式是系統(tǒng)的一種配置模式 , 開始激活headless模式,告訴程序,現(xiàn)在你要工作在Headless mode下,就不要指望硬件幫忙了,你得自力更生,依靠系統(tǒng)的計算能力模擬出這些特性來繼續(xù);

在tomcat/bin/catalina.sh里加入 JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true


代碼片段

歷史文章:
JAVA微信企業(yè)付款到零錢(十分鐘搞定)

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

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