报错: Could not initialize class sun.awt.X11GraphicsEnvironment
前几天出差去解决了个程序excel导出为空数据的问题,报错信息为Could not initialize class sun.awt.X11GraphicsEnvironment
百度上解释的原因应该就是说一个Java服务器来处理图片的API基本上是需要运行一个X-server以便能使用AWT(抽象窗口工具集),其实也就是说负责图像显示的xserver无法启动
解决办法就是开启headless就好了,Headless模式是系统的一种配置模式 , 开始激活headless模式,告诉程序,现在你要工作在Headless mode下,就不要指望硬件帮忙了,你得自力更生,依靠系统的计算能力模拟出这些特性来继续
开启headless模式的方式网上给了很多,下列方法是我这次所配置的
修改Tomcat目录bin下的catalina.sh文件
在非注释第一行新增
CATALINA_OPTS="-Djava.awt.headless=true"
然后重启Tomcat即可
若上述方法配置失败了,可以试试其他开启方法,这里我将网上所提供的开启方式汇总一下,但是下列方法我个人没有进行验证过,按理来说应该都是一样的
1.修改Tomcat目录bin下的catalina.sh文件,在非注释第一行添加该配置 JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
2.修改Tomcat目录bin下的catalina.sh文件,在下列所示图片位置新增 -Djava.awt.headless=true 即可
3.修改Tomcat目录bin下的catalina.sh文件
查找 -Djava.io.tmpdir="\$CATALINA_TMPDIR" 这行,在下列新增该配置 -Djava.awt.headless=true \ (大概有七八处左右)