본문 바로가기
[개발] Programming/Java

자바 엑셀 파일 읽을 때 오류 - java.lang.NoSuchFieldError, java.lang.NoClassDefFoundError 등등

by eatyourKimchi 2021. 6. 10.

 

자바 NoSuchFieldError

 

 자바에서 엑셀을 읽을 수 있는 XSSFWorkbook 객체를 사용하다 보면 라이브러리를 추가해야 되는데, 이때 라이브러리 버전이 안 맞으면 수많은 class not found 오류가 발생합니다. 그래서 제가 직면했던 오류와 지금 사용하는 라이브러리 버전을 공유하겠습니다.

 

 

 

연관 오류 종류

  java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER

  java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject

  java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.put(Ljava/lang/Object;)V

  java.lang.NoClassDefFoundError: org/apache/commons/compress/archivers/zip/ZipFile

 

 

 

현재 사용하는 라이브러리 버전

  commons-collections4-4.4.jar

  poi-3.13.jar

  poi-ooxml-3.13.jar

  poi-ooxml-schemas-3.13.jar

  xmlbeans-3.0.1.jar

 

 

저는 위에 5개 라이브러리를 추가하니 엑셀 관련 객체들이 정상적으로 동작하였습니다. 이 중에서 특히 최신 poi 라이브러리를 사용하면 수많은 라이브러리들의 버전이 함께 높아야 해서 오류가 가장 많이 났습니다. 처음에 5 사용했다가 바로 3으로 내렸습니다..

 

위와 같이 맞추니 이제 클래스를 못 찾는다는 오류는 나지 않네요 ;;

결국 라이브러리간에 호환성 문제였던 것...

 

 

 

댓글