在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题

在rh8   linux   下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片,XServer已启动。出现如下问题  
  错误提示如下    
  java.lang.InternalError:   Can't   connect   to   X11   window   server   using   ':0.0'   as   the   value   of   the   DISPLAY   variable.    
  at   sun.awt.X11GraphicsEnvironment.initDisplay(Name)  
  java.lang.InternalError:   Can't   connect   to   X11   window   server   using   ':0.0'   as   the   value   of   the   DISPLAY   variable.    
  at   sun.awt.X11GraphicsEnvironment.initDisplay(Native   Method)    
  at   sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:59)    
  at   java.lang.Class.forName0(Native   Method)    
  at   java.lang.Class.forName(Class.java:120)    
  at   java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:58)    
        在win2000下代码完全正常。

  服务器在字符环境下java无法创建图片的解决办法  
   
  解决方案:将pja.jar   ,pjatools.jar拷贝到weblogic的lib目录下,在startWebLogic.sh中将这两个文件加入到CLASSPATH中,然后将以下文字加入到$JAVACMD中,其中  
  /usr/java/jdk1.3.1_06       是指java的安装目录  
  /home/weblogic/wlserver6.1/lib       是指   pja.jar   ,pjatools.jar的存放目录  
   
  -Xbootclasspath/a:/usr/java/jdk1.3.1_06/lib/rt.jar:/home/weblogic/wlserver6.1/lib/pja.jar   -Djava.awt.toolkit=com.eteks.awt.PJAToolkit   -Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment   -Djava.awt.fonts=/usr/java/jdk1.3.1_06/jre/lib/fonts    
   
   
  添加后执行会出现一些说   font找不到的提示,不用理他。  
   
   
  讨论:这个问题在java中称为headless问题,是jdk1.3的bug,bug报告见http://developer.java.sun.com/developer/bugParade/bugs/4281163.html   。jdk1.4已经做了修正,文档见http://java.sun.com/j2se/1.4.1/docs/guide/awt/AWTChanges.html。  
  我对这个问题的理解:headless是指由于一些服务器(比如大型机)运行的环境比较特殊,不存在真实的设备去处理一些输入输出,比如显卡,键盘鼠标;这时就需要虚拟一些运行环境出来,或者就不要用到这些设备的相关操作(比如输入输出)。然而运行java.awt包又需要一个的图形环境,由此产生了异常。  
   
  这个问题的解决办法有三个:  
  1:将jdk升级为jdk1.4,然后加上运行参数   –Djava.awt.headless=true   即可。  
  2:虚拟一个图形环境。一般在linux下使用Xvfb来虚拟一个图形环境,在linux命令行键入Xvfb   :0   -screen   0   1024x768x16   &   ,不过在使用之前要对Xvfb进行设置。我在本机上没有调试成功。各位可以试一下。  
  3:使用第三方工具包。可以使用   pja包,下载地址   http://www.eteks.com/pja/en/#Download   ,使用方法见解决方案。

你可能感兴趣的:(在linux下用java的JPEGCodec.createJPEGEncoder(bos)生成jpg图片问题)