[Error] Could not initialize class sun.awt.X11FontManager

SangDosa·2025년 6월 22일

Error

목록 보기
5/5

오류 내용

  • POI를 활용한 엑셀 생성 개발에서 아래 오류 발생
Could not initialize class sun.awt.X11FontManager
  • 발생 주요 원인
  1. Headless 환경에서 AWT 사용
  2. libfontconfig 등 폰트 관련 리눅스 라이브러리가 없음
  3. Java 버그/설정 문제
    ==> POI 사용시 AWT를 사용하는데 해당 설정을 해주지 않아서 오류 발생

해결 방식

  1. headless 설정 추가
  • 실행: java.awt.headless=true 설정을 Docker, GitLab 설정 내에 추가
  • 결과: 실제로 POD 내 설정 추가되지 않아 위 오류 지속적으로 발생
  1. 폰트 및 패키지 설치
  • 실행: Dockerfile 내에 아래 설치 처리 실행
# 필요 패키지 설치: 폰트, X11 관련
RUN apt-get update && apt-get install -y \
    fontconfig \
    fonts-dejavu-core \
 && rm -rf /var/lib/apt/lists/*
  • 결과: 설치 실행이 되지 않아 지속적으로 오류 발생
  1. .deb 활용
  • 실행: .deb 안에 있는 폰트 설치 파일을 통해서 POD 내에 폰트 설치
# 설치
RUN apt-get update && apt-get install -y \
    fontconfig \
 && dpkg-deb -x /tmp/my-font.deb /usr/local/share/fonts/ \
  • 결과: 폰트 설치 및 오류 해결
profile
조용한 개발자

0개의 댓글