path란
- 운영체제가 사용하는 환경변수 (environment variable)
- 실행 가능한 파일 또는 자바 바이트 클래스 경로
- 리눅스, 맥 등 터미널에서 set CLASS_PATH=... 로 설정 가능
- echo $'환경변수 이름' 으로 설정된 환경변수 값 확인 가능
- echo $CLASS_PATH
classpath란
- classpath 또한 환경변수로 java compiler가 사용
- runtime시 compiler가 클래스파일을 찾는 경로 (정확히는 class loader)
- JVM이 프로그램을 실행할 때 class를 찾기 위해 사용
- terminal에서 javac로 실행 시 디폴트는 현재 경로 참고
- OS의 환경변수로 설정한 CLASS_PATH를 참고할 수 있다. (bash_profile, profile,,)
- Spring에서 제공하는 ClassPathResource 는 classpath에 저장된 파일을 쉽게 가져올 수 있도록 지원
ClassPathResource 예시
- src/main/resources/data/data.txt 경로에 위치한 파일 가져오기
- 다음 코드가 정상으로 실행된다면 src/main/resources 까지가 ClassPath에 등록된 것이다.
ClassPathResource resource = new ClassPathResource("data/data.txt");
추가로 classpath관련 자세한 내용 참고 링크
https://effectivesquid.tistory.com/entry/자바-클래스패스classpath란
https://vvshinevv.tistory.com/70
buildpath란
- 빌드 시 사용되는 자원을 가져오는 경로
- 빌드란? 실행 가능한 파일로 산출하는 것
- 빌드 과정
- compile
- 소스코드 Test
- Test 수행(unit test 등)
- Packaging(jar파일, war파일 등)
- Health check(PMD, test coverage 등)
- report 생성
- eclipse에서 등록 시 source, projects, library로 구분되어 있는 것을 확인할 수 있다.
- 프로젝트 첫 빌드 시 build path 를 참고하여 프로젝트 경로에 .classpath 파일을 만든다.
.classpath에서 확인한 resourec 경로
참고
https://stackoverflow.com/questions/2650168/building-vs-compiling-java
http://june0313.github.io/2018/08/11/read-resource-file-on-spring/
https://www.linkedin.com/pulse/difference-between-path-classpath-shivani-verma
'Java' 카테고리의 다른 글
java int를 char로 형변환하기 (0) | 2023.02.11 |
---|---|
static, final, static final 특징 (0) | 2022.08.20 |
[Java] 예외 처리 - custom exception (0) | 2021.09.22 |
[Java] 예외처리 시 주의 팁 (0) | 2021.09.19 |
[Java] 시간(Time)/날짜(Date) 제공 클래스 및 시간 비교 (0) | 2021.08.16 |