在Web開發中使用驗證碼時可能遇到的問題:
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
原因:
驗證碼採用awt圖形處理並內存中生成,java程序會去尋找linux上的圖形界面是否啓動 ,如linux缺少組件則, 缺少了顯示設備、鍵盤或鼠標會報這個錯誤;
所以需要開啓無頭模式, Headless模式是系統的一種配置模式 , 開始激活headless模式,告訴程序,現在你要工作在Headless mode下,就不要指望硬件幫忙了,你得自力更生,依靠系統的計算能力模擬出這些特性來繼續;
在tomcat/bin/catalina.sh里加入 JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true
歷史文章:
JAVA微信企業付款到零錢(十分鐘搞定)