Could not initialize class sun.awt.X11GraphicsEnvironment解决方案
报错信息
Caused by: java.lang.InternalError: Can’t connect to X11 window server using ‘localhost:10.0’ as the value of the DISPLAY variable.
报错原因
一个 Java 服务器来处理图片的 API 基本上是需要运行一个 X-server 以便能使用 AWT(Abstract Window Toolkit,抽象窗口工具集)。所以,问题肯定出在启动 server 时,未能实现 X-Server 功能。报错的原因是:linux 未能启动 XServer 服务
解决方案
1、服务器安装 XServer (这个服务一般包含于图形化界面组里);
2、运行 headless 服务器加 - Djava.awt.headless=true
需要 JDK1.4 以上版本;在有问题的 server 服务的 java -jar 启动命令增加选项 - Djava.awt.headless=true;
示例
# tomcat将此参数加入catalina.sh的JAVA_OPTS参数中
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
# springBoot项目将参数加入到启动命令中
/usr/java/jdk1.8.0_191/bin/java -jar -Djava.awt.headless=true -Xms128m -Xmx512m spring-demo-1.0-SNAPSHOT.jar