728x90
리눅스 서버에서
java.lang.NoClassDefFoundError: Could not initialize class java.awt.GraphicsEnvironment$LocalGE
이러한 에러가 났다.
찾다보니 JAVA_OPTS에 설정값이 누락되어서 일어난 에러였다.
설정값은 두가지 방법으로 추가할 수 있다.
1. 자바 코드에서 추가하는 경우
서버 기동시 실행되는 클래스에 추가하는 방법
System.setProperty("java.awt.headless", "true")
(기동될때 실행되는 클래스들은 web.xml 에서 listener, filter 등 등록되어있는 class 들에 해당)
2. 서버(tomcat)에 직접 추가하는 경우
보통 ssh 에서 apache-tomcat-8.5.9/bin (tomcat 경로는 설정마다 다름) 에 catalina.sh 가 실행되면서 tomcat 이 올라가는 건데 보통 옵션들은 catalina.sh 에 추가해도 무방하지만 setenv.sh 에 추가하는 것이 났다.
기본적으로 catalina.sh 에는 setenv.sh 파일을 읽을 수 있도록 설정되어 있기 때문에 만약 bin 폴더 안에 setenv.sh 가 없다면 만들고 그 안에 아래와 같은 옵션값을 추가하면 된다.
export JAVA_OPTS="-Djava.awt.headless=true"
<참고>
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rutee9&logNo=130109088347
https://recordsoflife.tistory.com/1266
—JVM 옵션 관련
728x90
반응형
'Trouble Shooting' 카테고리의 다른 글
구버전 서버와 최신 JDK 서버, TLS 핸드셰이크 문제 해결기 (1) | 2025.08.19 |
---|---|
도메인 변경 중 SSL 에러 발생 -> 등록 및 갱신하기 (4) | 2025.07.30 |