728x90
반응형
Java로 Excel 파일을 생성하기 위해 new XSSFWorkbook()를 실행하는 중 아래와 같은 오류가 발생할 수 있습니다.
'org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream$Builder org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream.builder()'
이 오류는 Apache POI 라이브러리와 관련된 commons-io 라이브러리 간의 버전 불일치로 인해 발생합니다. 특히, XSSFWorkbook 클래스의 생성자가 UnsynchronizedByteArrayOutputStream.builder() 메소드를 호출할 때, 해당 메소드가 존재하지 않는 경우 이 오류가 발생할 수 있습니다.
에러 발생 원인
- 사용한 Apache POI 라이브러리 버전: org.apache.poi:poi-ooxml:5.3.0
- 사용한 commons-io 라이브러리 버전: commons-io:commons-io:2.11.0
해결 방법
- Maven 또는 Gradle에서 commons-io 라이브러리의 버전을 `2.16.1`로 업데이트합니다.
- 프로젝트를 빌드하고, 오류가 해결되었는지 확인합니다.
해결 과정
excel 파일 생성을 위해 추가한 dependency는 아래와 같습니다.
implementation 'org.apache.poi:poi-ooxml:5.3.0'
해당 버전과 맞는 commons-io의 버전은 2.16.1 입니다.
현재 프로젝트에서 사용하고 있는 commons-io의 버전은 2.11.0 이라서 버전을 맞춰준 후에 에러가 해결되었습니다.
implementation 'commons-io:commons-io:2.11.0'
implementation 'commons-io:commons-io:2.16.0'
참고자료
https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml/5.3.0
728x90
반응형
'개발 > java' 카테고리의 다른 글
[java] byte 배열을 int 값으로 변경하는 방법 (0) | 2024.05.29 |
---|---|
[java] byte 값과 16진수(hex)값 비교 방법 (0) | 2024.05.29 |
[windows + intellij] OpenJDK21 설치 방법 (0) | 2024.05.28 |
[Enum] 여러 필드로 구성된 Enum에서 특정 값이 존재하는지 체크 하는 방법 (0) | 2024.02.21 |
[Java] byte 에서 특정자리 bit 추출하는 방법 (0) | 2024.02.02 |