把应用部署到Linux下,结果首页登录的验证码显示不出来。该验证码是用java的图片包来处理图片的,后台日志报错:java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment 这种异常,这是因为java虚拟机在处理图片时需要本地的x-server的支持,解决方法有两种:
java 1.4版本以上
启动java时加上参数:-Djava.awt.headless=true 例如:我们在启动tomcat时在启动命令行里面加上这个参数就可以了.
对于 websphere 则进入应用程序服务器 > server1 > 进程定义 > Java 虚拟机
一般 JVM 自变量 :-Dfile.encoding=GBK -Ddefault.client.encoding=GBK -Djava.awt.headless=true
对应weblogic,则进入 环境 > 服务器 > 对应服务器名 > 配置 > 服务器启动,在“参数”里面,增加以上部分。
java 1.4版本以前
下载xvfb或者其他的虚拟x-windows,然后在java的运行环境里的DISPLAY做相应的改变.
注意:服务需要重启后,设置才能生效。