1.无法连接X11错误

tomcat Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.

2.无法初始化错误

SEVERE: Servlet.service() for servlet [default] in context with path [] threw exception [Filter execution threw an exception] with root cause
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

这两个错误是因为java工程中有图形相关的调用,大多数服务器是没有装图形环境的,所以会抛异常,解决方法:

1.使用X Window System

yum groupinstall  'X Window System'

安装完后检查下jdk目录下的libmawt.so的依赖关系:

ldd /opt/jdk1.6.0_45/jre/lib/amd64/xawt/libmawt.so

发现有“not found”,用yum provides xxx.so查询下所在的包,在yum install xxx安装上

2.使用Xvfb
如果不想安装X windows,也可以使用Xvfb,为应用程序提供虚拟的X服务器环境
安装Xvfb:

yum install Xvfb

创建xauth认证文件:

创建/etc/X30.hosts 内容为:

localhost

如果有其它机器连到这个虚拟X服务器,ip也要写进来
启动:

Xvfb :30 -auth /etc/X30.hosts -screen 0 1280x1024x8 &

加入开机启动,把上面的命令写入: /etc/rc.d/rc.local

修改tomcat的catalina.sh文件,加入下面内容:

DISPLAY=:30
export DISPLAY

启动tomcat即可

3.修改jvm启动参数

在catalina.sh中加入:

export JAVA_OPTS="
-Djava.awt.headless=true "

即可

参考文章:
http://www.jvmhost.com/articles/java-gui-headless-server-xvnc-xvfb-x11vnc