back end/java

apache poi - IOException: 지정된 경로를 찾을 수 없습니다

노루아부지 2023. 10. 4. 18:06

문제 발생

apache poi를 사용한 엑셀 다운로드 시, 다음과 같은 에러 발생하여 내용 기록

 

apache poi - IOException: 지정된 경로를 찾을 수 없습니다

 

 

원인 분석

엑셀 다운로드 시, createTempFile() 함수에서 임시 경로를 만드는데, 코드는 다음과 같습니다.

apache poi - IOException: 지정된 경로를 찾을 수 없습니다

 

이 함수 내용 중 경로에 해당하는 부분은 아래와 같습니다.

new File(System.getProperty("java.io.tmpdir"), "poifiles");

 

 

java.io.tmpdir의 경로는 환경에 따라 다르기 때문에 다음과 같이 코드를 작성하여 확인이 필요합니다.

public static void main(String[] args) {
  String tempDir = System.getProperty("java.io.tmpdir");
  System.out.println(tempDir);
}

 

저의 경우에는 아래와 같은 경로였습니다.

C:\Users\사용자계정\AppData\Local\Temp

 

해결 방법

poi는 java.io.tmpdir 경로에 poifiles에 임시 파일을 만드는데 poifiles 폴더에 쓰기 권한이 없어서 발생한 문제입니다.

 

해결방법 1

java.io.tmpdir 및 poifiles에 쓰기 권한 부여

 

해결방법 2

java 프로그램 실행 시 프로그램에 권한 부여

728x90
loading