tomcat缺少awt支持的解决&java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvir

这几天,线上的项目出现了一个问题,就是二维码图片没有出来,考虑到图像都是用到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

你可能感兴趣的:(Java细节,tomcat,开发语言,Java,awt)