z

BLOG ARTICLE Can't Connect to X11 Window Server | 1 ARTICLE FOUND

  1. 2011.04.07 Java X Server connect error 처리 와 Linux에서 Window Font 이용


JAVA에서 BufferedImage 등의 Image 관련 함수 이용 시 "Can't connect to X11 window server..." 라고 에러 뜰때.. 
원인은 Graphics의 createGraphics에서 X의 자원을 이용하지 않음에도 X로 연결하려고 지롤을 떨어서 그런거 같음. 
VM 실행 시 파라미터로 -Djava.awt.headless=true 옵션으로 처리하면 됨.

그리고, 아래는 리눅스에서 윈도우 폰트 이용하는 방법 퍼온 것.

출처는 요기:http://mindconverter.tistory.com/18

윈도우에 있는 폰트를 Linux Java에서 사용하기 위한 내용에 대해서 정리하였다.

우선 윈도우 폰트를 찾아보자
 c:\windows\fonts
속에는 많은 폰트가 들어있다...

우선 윈도우에 있는 이 많은 폰트들 중 필요한 것을 골라서
linux의
 $JAVA_HOME/jre/lib/fonts
로 복사한다.

필자는 gulim.ttc, batang.ttc 를 복사하였다.

그 후에
 $JAVA_HOME/jre/lib/fonts
폴더에 보면
 fonts.dir
이란 파일이 있다.

요 파일을 수정이 가능하게 모드를 변경후에
 chmod 664 fonts.dir - 자신과 그룹만 쓰기 가능하게..

수정을 한다.

파일의 상단에 있는 숫자는 폰트의 개수를 나타낸다.
따라서 +2를 해줘야겠지????

이후 맨 아래다가 2줄 추가한다.
batang.ttc -ms-batang-medium-r-normal--0-0-0-0-c-0-ksc5601.1987-0
gulim.ttc -ms-gulim-medium-r-normal--0-0-0-0-c-0-ksc5601.1987-0

요렇게...

이럼 폰트를 java에서 불러쓸 수 있더라...
당근 fonts.dir은 기존 대로 돌려놓자
 chmod 444 fonts.dir
읽기만 가능하게 끄름..

불러오는 소스는 간단하게...


BufferedImage bi = new BufferedImage( 200, 12, BufferedImage.TYPE_INT_RGB);
g2 = bi.createGraphics();
g2.setFont( new Font( "gulim", Font.PLAIN, 12) );
g2.drawString( "굴림체닷!!!', 0 , 0 );
g2.setFont( new Font( "batang", Font.PLAIN, 12) );
g2.drawString( "바탕체닷!!!', 100 , 0 );
g2.dispose();

//서블릿이라면 이미지를 화면에 보여줄 수 있겠지... JAI를 이용해서...
ImageIO.write(bi, "jpg", response.getOutputStream() );


요럼 대겠다...

이건... 특정일자가 지난 파일을 삭제하는 커맨드 +30은 경과일자. 즉, 30일 지난 파일 삭제
find ./ -mtime +30 -print -exec rm -f {} \;


AND