验证码无法正常显示,提示 Could not initialize class sun.awt.X11GraphicsEnvironment
在 Linux 下部署项目时,一直遇到一个验证码不显示,看了日志后发现有这个错误
ava.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"
这个 配置加上后需要重启 tomcat 服务器
加上后需要重启 tomcat 服务器
引用:https://blog.csdn.net/angryjiji/article/details/98263244
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)