64位linux报错Could not initialize class java.awt.image.BufferedImage

时间:2021-10-23 08:10:38

最近碰到一个问题:

64位linux报错Could not initialize class java.awt.image.BufferedImage

在WIN平台下运行正常
BufferedImage tag = new BufferedImage(this.width,this.height,BufferedImage.TYPE_USHORT_555_RGB);
         tag.getGraphics().drawImage(src,0,0,this.width,this.height,null);

网上有说法换成32位linux即可解决。

不想换系统的话,我的解决方法是:

只需在TOMCAT启动参数中加"-Djava.awt.headless=true /"
启动文件是:/bin/catalina.sh  
加入的上下文 是
 else
    "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS /
      -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" /
      -Dcatalina.base="$CATALINA_BASE" /
      -Dcatalina.home="$CATALINA_HOME" /
      -Djava.io.tmpdir="$CATALINA_TMPDIR" /
      -Djava.awt.headless=true /*********加入这一行**************
      org.apache.catalina.startup.Bootstrap "$@" start /
      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &

if [ ! -z "$CATALINA_PID" ]; then
        echo $! > $CATALINA_PID
      fi
  fi

elif [ "$1" = "stop" ] ; then
加的时候注意位置(stop是关键的位置标志)

以上无法运行的原因是LINUX字符模式无法支持图形处理