把应用部署到Linux下,结果首页登录的验证码显示不出来。该验证码是用java的图片包来处理图片的,后台日志报错:java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment 这种异常,这是因为java虚拟机在处理图片时需要本地的x-server的支持,解决方法有两种:
1 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,则进入 环境 > 服务器 > 对应服务器名 > 配置 > 服务器启动,在“参数”里面,增加以上部分。
2 java 1.4版本以前
下载xvfb或者其他的虚拟x-windows,然后在java的运行环境里的DISPLAY做相应的改变.
注意:服务需要重启后,设置才能生效。
本文介绍了解决Linux环境下Java应用中验证码无法显示的问题。主要原因是Java虚拟机处理图片时需要x-server支持,提供了两种解决方案:一是设置-Djava.awt.headless=true参数;二是对于Java 1.4版本以前的情况,可以通过安装xvfb或类似软件并调整DISPLAY环境变量。
1064

被折叠的 条评论
为什么被折叠?



