본문 바로가기
language/java

리눅스 or 유닉스 시스템에서 java.awt 패키지 사용하기

by vamalboro 2008. 8. 28.

java의 java.awt패키지는 이미지처리시 운영체제의 자원을 사용한다.

윈도우즈의 경우에는 아무설정을 해주지 않아도 잘돌아가지만(그래서 어떤방식인지는 아직 잘모르겠다.)

유닉스나 리눅스 시스템 환경에서는 X11이라는 흔히 말하는 X-window가 설치되어있고 데몬이 구동되고 있을시에

패키지사용이 가능하다.

보통 웹상에서 JSP & SERVLET을 이용 이미지 썸네일을 구현할시에 여러가지 방식이 있겠지만

나는 JAI를 사용한다.

JAI(Java Advanced Imaging ) 는 SUN에서 발표한 이미지 처리를 위해 만들어 진 API이다.

필요한 jar파일은 jai_core.jar, jai_codec.jar가 필요하다.(sun 홈피에서 다운받을수 있다.)

JAI또한 내부에선 java.awt.를 사용한다.

대략적인 설명을 마치고

================================================================================================

어제부터 썸네일 생성시 에러가 나면서 로그파일에

java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment
 at java.lang.Class.forName1(Native Method)
 at java.lang.Class.forName(Class.java(Compiled Code))
 at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:91)
 at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1073)
 at com.nowonplay.hover.image.ImageConverter.create(ImageConverter.java:295)
 at com.nowonplay.hover.image.ImageConverter.create(ImageConverter.java:254)
 at com.nacf.util.ImageUtil.createThumbnail(ImageUtil.java:32)
 at jeus_jspwork._media._vodRrcCenter._photo._403_write._jspService(_403_write.java:346)
 at jeus.servlet.jsp.HttpJspBase.service(HttpJspBase.java:54)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:269)
 at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:102)
 at jeus.servlet.jsp.JspServletWrapper.execute(JspServletWrapper.java:63)
 at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:175)
[2008.08.28 12:25:28][1] [SRVL-2456] [E] (/media/vodRrcCenter/photo/write.jsp) fail to execute servlet

이러한 메세지가 남아있다..

검색해보니 X11자원을 찾기 못하는것 같았다..아니면 설치되어 있지 않던가.

첫번째 방법은 일단 X11이 설치되어 있지 않다면 설치해야한다.

설치가 되어있는 상태라면 웹서버의 설정파일에서

jvm구동 옵션에 -Djava.awt.headless=true 을 포함해서 웹서버를 재시작 하면 X11데몬을 띄우지 않고

X11의 자원을 사용할 수 있다.