본문 바로가기
Language/Java

[Java] java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 에러 해결 방법

by 광진구뚝배기 2022. 7. 28.

상황

 

내가 맡고있는 업체에서, 우리 회사 솔루션을 사용하던 중 에러가 발생하여 문의를 준 것이 바로 

java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter 이다.

 

에러 발생 환경을 간단히 설명하자면, 리눅스 환경에서 우리 솔루션을 사용하여 db에 연결하고 select 문을 테스트 후 rollback 하는 것인데, 그 과정에서 에러가 발생한 것이다.

 

에러를 찾아보니, 자바 버전 7.2.x 버전 이후 부터는 ByteToCharConverter.class 가 빠져있는 것이다.

 

 

 

에러 로그

 

java.lang.NoClassDefFoundError: sun/io/ByteToCharConverter:sun/io/ByteToCharConverter
   at com.ibm.db2.jcc.b.r.a(r.java:159)
   at com.ibm.db2.jcc.a.d.a(d.java:1009)
   at com.ibm.db2.jcc.a.db.a(db.java:1723)
   at com.ibm.db2.jcc.a.db.a(db.java:1651)

 

 

 

해결방법

 

db2jcc.jar 가 아닌 db2jcc4.jar 로 업그레이드 하면 해결되는 문제였다.

 

아래 삽입된 참고자료 링크를 보면 알 수 있듯이 나는 처음에 jdk 폴더 안에 ext 로 빼서 해당 파일들을 넣으려 했는데, jdk 자체를 바꿔버리는 것은 리스크가 크기 때문에, 따로 참조해서 사용하는 db2jcc.jar 를 db2jcc4.jar 인 최신 버전으로 교체하여 해결했다.

 

 

 

참고자료

 

https://doc.castsoftware.com/display/TG/Delivery+Manager+Tool+-+Extraction+-+Fatal+Error+-+SQL-+PSM+UDB+-++ByteTocharConverter+caused+by+java+lang+NoClassDefFoundError

 

 

 

 

 

반응형

댓글