验证码没法显示:Could not initialize class sun.awt.X11GraphicsEnvironment 解决方案

1、缘由现象:图下图

2、缘由致使:

  通过Google发现不少人也出现一样的问题。从了解了X11GraphicEnvironment这个类的功能入手,一个Java服务器来处理图片的API基本上是须要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。因此,问题确定出在启动server时,未能实现X-Server功能。root用户未启动XServer,mmcse中启动了XWindow。so问题来了。

3、解决方法:

  1. 安装XServer(忽略,由于服务器自己软硬件环境基本没动过);html

  2. 运行headless服务器-Djava.awt.headless=true (须要JDK1.4以上版本)。重点来看这种解决方案(详见参考资料,但主要涉及的是Webapp,设置webserver。咱们的场景是在applet client做图,而后在server端处理成png并保存)java

     具体解决办法:在各个server服务的java -jar启动命令增长选项-Djava.awt.headless=true,问题解决(Google是王道)!!linux

     若是是在web server中,则在server的启动脚本中增长相同选项。web

linux以下:服务器

 

4、参考资料

1. linux中servlet画图问题的解决 

2. Java官网的headless support

3. java.awt.headless=true的含义

相关文章
相关标签/搜索