[Java]Java 프로젝트에서의 bin 폴더와 .class 파일 위치 이해하기

LeeYulhee·2023년 9월 18일
0

👉 bin 폴더


  • bin 폴더는 일반적으로 "binary"의 약자
  • 실행 가능한 바이너리 파일들이나 스크립트를 저장하는 디렉토리
  • ⇒ 보통 컴파일된 .class 파일들을 저장하는 디렉토리
    • .class 파일들은 자바 소스 코드(.java 파일)를 컴파일한 결과물로, 자바 가상 머신(JVM)이 이 파일들을 실행할 수 있는 형태



👉 사용하는 IDE에 따라 .class 파일이 생성되는 위치가 달라짐


  • bin 폴더는 이클립스(Eclipse) 같은 IDE에서 자주 볼 수 있음
  • IntelliJ IDEA에서는 일반적으로 out 디렉토리에 .class 파일들이 저장됨
  • class 디렉토리에 .class 파일이 생성되기도 함



👉 사용하는 프레임워크 등에 따라 .class 파일이 생성되는 위치가 달라짐


  • 스프링부트
    • 일반적으로 target(Maven), build(Gradle) 폴더에 컴파일된 코드와 리소스를 저장
      • 이 폴더들은 bin 폴더와 다르게 Java 어플리케이션을 빌드하고 실행하는 데 필요한 모든 것을 포함하고 있음
    • Gradle을 사용하는 경우
      • build/classes 디렉터리 아래에 다양한 하위 디렉터리(main, test 등)가 있고, 그 안에 .class 파일들이 위치
      • build/libs 디렉터리에 .jar 파일이 생성
    • Maven을 사용하는 경우
      • target/classes 디렉터리 아래에 .class와 .jar 파일들이 생성



👉 스프링부트에서 .class 파일과 .jar 파일이 안 보이는 경우(Gradle)


  • 실행했던 프로젝트여도 현재 디렉토리에서 build 내부에 classes, libs 폴더가 없을 수 있음
    • ⇒ 인텔리제이에서 ‘실행 버튼’으로 프로젝트 실행한 경우
      • 내부적으로 Gradle 같은 빌드 도구를 사용해 빌드하고 실행됨
      • 이 과정에서 필요한 .class 파일 등은 생성되지만 일반적으로 이 파일들은 인텔리제이 내부적인 디렉토리에 임시로 저장될 수 있음
    • ⇒ 만약 명시적으로 build해서 해당 디렉토리들을 보고 싶다면 아래 방법 중 하나를 실행
      • IntelliJ IDEA의 메뉴에서 Build -> Build Project를 선택
      • 터미널을 열어서 ./gradlew build 명령어 실행
      • ⇒ 명령어 실행 후, build 디렉토리 모습
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글