(1)需要在执行文件里面加上shell代码 unset DISPLAY
(2)Tomcat中修改TOMCAT_HOME/bin/catalina.sh,在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:JAVA_OPTS="-server -Xms128m -Xmx256m -XX:MaxPermSize=256M -XX:PermSize=128M -Djava.awt.headless=true"
(3)JAVA_OPTS=-Djava.awt.headless=true
在resin中配置jvm参数。在httpd.sh中,找到args=这一行,然后添加args="-Djava.awt.headless=true"对于tomcat,则在-Dcatalina.home行下面添加-Djava.awt.headless=true每一行都要添加,总共有9行
Headless是指服务器的无显示设备状态(缺少显示器、键盘、鼠标)
例:应用集群、数据库集群等,它们一般没有显示器、键盘、鼠标,都是通过网络远程操作。
AWT是Java构建GUI应用的标准API接口,且Java自带2套实现类,一套供标准模式使用(显示设备、驱动可用),另一套供headless模式使用(显示设备、驱动不可用);
Button、Checkbox、Choice、Dialog、FileDialog、Label、List、Menu、MenuBar、MenuItem、PopupMenu、Scrollbar、ScrollPane、TextArea、TextField、Window
注:这些组件,只能运行在“标准模式”下,Headless模式中使用会报错;
Canvas、Fonts、Colors、Images
注:这些组件不仅在“标准模式”下可用,它们的Headless版本也可以在Headless模式下正常使用;
通常B/S型Web应用运行于无显示设备、驱动的服务器端环境中,但是有使用AWT绘图接口的可能(例如:用Images、Fonts接口生成图片验证码);所以给Tomcat、Weblogic附加参数-Djava.awt.headless=true,强制使用Headless版本的AWT实现类,就能避免图形环境缺失所导致的程序出错;
发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)