码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-05-31 14:45:13      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:bst   view   style   参考   基本   官网   验证   并保存   awt   

一、原因现象:图下图

技术分享图片

二、原因导致:

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

三、解决方法:

  1. 安装XServer(忽略,因为服务器本身软硬件环境基本没动过);

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

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

     如果是在web server中,则在server的启动脚本中增加相同选项。

linux如下:

 技术分享图片

四、参考资料

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

2. Java官网的headless support

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

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

标签:bst   view   style   参考   基本   官网   验证   并保存   awt   

原文地址:https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/9116290.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!