차근차근/Linux

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

예쁜꽃이피었으면 2016. 10. 13. 10:50



검색어 : 

java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment in linux



리눅스 서버에서 톰캣을 깔고 이클립스에서 작성한 프로젝트를 올려서 사용하던 중에


java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment 이런 에러가 났다.


어.. 로컬에서 테스트를 했을 때는 이상이 없는데


서버에 올린 후 테스트를 하면... 작동이 되지 않았다.. 

/usr/local/apache-tomcat-7.0.69/logs/localhost.2016-10-13.log 에서 에러를 발견했는데



이곳에 해결방법이 있었다

http://stackoverflow.com/questions/21131855/could-not-initialize-class-sun-awt-x11graphicsenvironment-on-solaris



Try running this code in a constructor of a servlet

System.setProperty("java.awt.headless", "true"); 

or

Use this parameter in the startup script of the server:

-Djava.awt.headless=true





-Djava.awt.headless=true 이걸 


/usr/local/apache-tomcat-7.0.69_openCRX/bin/catalina.sh 이 파일에


JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.awt.headless=true" 이렇게 붙여넣는다


나는 231번째 줄에 있었고


if [ -z "$JSSE_OPTS" ] ; then

  JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"

fi

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"


기존에 이렇게 되어 있던 것에서 =====>


if [ -z "$JSSE_OPTS" ] ; then

  JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"

fi

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Djava.awt.headless=true"


이렇게 변경하였다.

반응형