linux下java处理图片报异常“Could not initialize class sun.awt.X11GraphicsEnvironment”
2013-10-17 09:51
239 查看
Java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。提示信息:"Can't connect to X11 window server"这是由于Linux的图形处理需要一个X Server服务器。(关于Linux的图形处理模式参考http://www.douzhe.com/docs/fbsd2/5.htm)
通常情况下,人们配置一个基于xNix的web服务器是不会安装X-Server,运行一个不必要的X-server并不是一种好的网络管理方式。对于一个Java服务器来说经常要处理一些图形元素,例如给图片加上水印文字,如果服务器没有安装X-Server,那就没法实现这个功能了。sun公司在JDK1.4的版本里面加入了一个headless服务器,有了这个你只需在jre启动的时候加入一句-Djava.awt.headless=true就可以得到与安装了X-Server一样的效果。下面说一下对于tomcat和weblogic俺是怎么实现这个小小的功能的:
直接修改${TOMCAT_HOME}/bin/catalina.sh文件
查到-Djava.io.tmpdir="$CATALINA_TMPDIR"这行,并在这一行下加入: -Djava.awt.headless=true \ 共七处。
找到weblogic.Server,在这个前面面加入-Djava.awt.headless=true即可,注意要用空格隔开。
通常情况下,人们配置一个基于xNix的web服务器是不会安装X-Server,运行一个不必要的X-server并不是一种好的网络管理方式。对于一个Java服务器来说经常要处理一些图形元素,例如给图片加上水印文字,如果服务器没有安装X-Server,那就没法实现这个功能了。sun公司在JDK1.4的版本里面加入了一个headless服务器,有了这个你只需在jre启动的时候加入一句-Djava.awt.headless=true就可以得到与安装了X-Server一样的效果。下面说一下对于tomcat和weblogic俺是怎么实现这个小小的功能的:
解决办法:
1.如果服务器上安装有图形界面,可以通过设置环境变量:DISPALY=127.0.0.1:0.0解决
2.如果没有安装图形界面,可以在Java运行时加上参数:-Djava.awt.headless=true
tomcat
运行export CATALINA_OPTS="-Djava.awt.headless=true" 或者直接修改${TOMCAT_HOME}/bin/catalina.sh文件
查到-Djava.io.tmpdir="$CATALINA_TMPDIR"这行,并在这一行下加入: -Djava.awt.headless=true \ 共七处。
weblogic
修改weblogic启动文件(如startWebLogic.sh或startmydomain.sh),拖到最后一行,找到weblogic.Server,在这个前面面加入-Djava.awt.headless=true即可,注意要用空格隔开。
相关文章推荐
- Java处理图片时出现异常
- java 图片裁剪上传变红等失真现象、cmyk颜色模式图片裁剪异常现象处理
- Java使用jmagick处理图片遇到的异常
- JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器
- Java中的异常处理:何时抛出异常,何时捕获异常?
- 关于六种Java异常处理程序的陋习
- java笔记:异常的简单处理
- Java中关于异常处理的十个最佳实践
- java图片处理 文字水印 图片水印 缩放 补白
- java异常处理,目前还是不懂,问题先留在这里,以后再解决
- java异常处理三——怎么处理异常
- java中异常处理
- java异常处理机制
- Notes: Exceptions in Java(Java中的异常处理)
- Java 异常处理的误区和经验总结
- Java异常处理和设计(转)
- Java异常处理之陋习展播
- 使用Hibernate框架,对异常java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z的处理
- 关于对Java中异常处理的try catch和throw的理解(浅显理解)
- Java Executor并发框架(十三)Executor框架线程池关于异常的处理