这几天,线上的项目出现了一个问题,就是二维码图片没有出来,考虑到图像都是用到awt库,可能是tomcat没有图像库的问题,给tomcat加上awt的支持就解决了。
加在catalina.sh的开头的JAVA_OPTS环境变量中加入-Djava.awt.headless=true就搞定了(加后如:JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=256m -Djava.awt.headless=true"),然后重启搞定。




java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

java在生成图形验证码时,报了一个找不到X11GraphicsEnvironment类的异常,之前也没有出现这个情况,不知什么原因突然出现了,经过查找解决方案,发现在Tomcat的启动脚本catalina.sh文件中增加一个参数即可解决。

Tomcat日志中错误信息:

img

解决方案,打开tomcat的bin目录,找到catalina.sh文件,编辑文件,在JAVA_OPTS这行的后面加上 -Djava.awt.headless=true 即可解决,亲测有效。

img

加上之后别忘了重启Tomcat。

扩展:

如果你是其他项目或者啥,或者apache服务啥的,同理,启动的时候带上这个参数就ok

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐