일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 오블완
- oracle
- 스레드
- 티스토리챌린지
- API
- service name
- MySQL
- JDBC
- Database
- Docker
- 안드로이드 스튜디오
- ibatis
- Linux
- java
- wsdl
- 스레드 덤프
- 프로세스
- 키보드
- http
- MariaDB
- 톰캣
- letterspacing
- 영상편집
- cmd
- httpservletreqeust
- HTML
- servicename
- SID
- 컨트롤러
- Tomcat
- Today
- Total
블로그 이름
[Java] Java 임시파일 경로 설정하기 본문
우선 Java의 임시파일 경로가 무엇인지
Java에서 임시파일 경로는 시스템 프로퍼티(java.io.tmpdir) 에 의해 결정되며, 이 경로는 File.createTempFile() 등 API에서 기본적으로 사용된다. \
JAVA는 내부적으로 해당 경로를 통해 임시 파일을 생성하며, 기본 경로는 OS에 따라 다르다. (WIN : C:\users\username\AppData\local\temp, linux/unix : /tmp, macOS: /tmp)
jAVA 임시파일 경로 확인은 System.getProperty("java.io.tmpdir") 를 사용하여 현재 시스템에서 사용중인 임시 디렉터리 경로를 확인할 수 있다.
내가 출력해 보았을때 내 java.io.tmpdir 기본 경로는 C:\Users\username\AppData\Local\Temp\ 로 되어있음을 확인
Java 프로그램의 임시파일 경로를 설정하는 방법은 두가지가 있다.
1. Java 옵션 설정에서 임시파일 경로를 설정하는 방법
2. Java 프로그램 내에서 임시파일 경로를 설정하는 방법
3. 환경 변수로 설정하는 방법
1번 방법은 JVM 옵션을 통해 애플리케이션 실행 시 JVM 인자에 -Djava.io.tmpdir 을 지정하여 설정하는 방식이다. 가장 일반적이고 선호되는 방식이다. 지정된 경로는 존재해야 하며, 쓰기 권한이 있어야 한다. 폴더가 없으면 예외가 발생한다.
java -Djava.io.tmpdir=/custom/temp/dir -jar hello.jar
2번 방법은 프로그램 내에서 변경하는 방법이다.
System.setProperty("java.io.tmpdir", "/custom/temp/dir");
위 코드로 설정 할 수 있다. 주의해야 할 점은 System.setProperty로 런타임 중에 변경 시 이미 로드된 클래스나 네이티브 코드엔 영향을 주지 않을 수 있다는 점이다. 때문에 비추천하는 방법. 설정은 애플리케이션 시작 전에 해야 효과가 있다.
3번 방법은 환경 변수를 설정하는 방법이다.
운영체제의 환경변수를 설정하여 JVM이 시작될 때 임시 디렉터리를 간접적으로 지정할 수 있다.
set JAVA_TOOL_OPTIONS=-Djava.io.tmpdir=C:\custom\temp\dir
JAVA_TOOL_OPTIONS는 모든 JAVA 실행 시 적용된다.
프로그램에 따라 설정해야 하는 임시 파일 경로 옵션은 다르며, jar 로 실행하는 프로그램의 경우 jvm 설정 옵션으로 설정 할 수 있으나, 톰캣의 경우 해당 java.io.tmpdir이 catalina에 설정되어 있기 때문에 tomcat/temp 에 파일이 기록되는 등 프로그램에 따른 임시 파일 경로 위치는 확인이 필요하다.
오늘은 JAVA 임시 파일 경로 설정 하는 방법을 정리하였다.
'개발 > Java' 카테고리의 다른 글
[JAVA] 윈도우 PC에 JAVA 설치 (0) | 2025.06.09 |
---|---|
[JAVA] List와 String (문자열, 배열) 변환 (0) | 2025.05.23 |
[VSCODE] VSCODE에서 JAVA 프로젝트 실행 (1) | 2025.05.14 |
[JAVA] split() 함수 반환 시 공백 값이 반환 안되는 현상 (0) | 2025.05.14 |
[JAVA] JDBC의 Connection, Statement, ResultSet (0) | 2025.04.22 |