[Java]JAR 파일

LeeYulhee·2023년 8월 30일
0

👉 설명


  • 여러 개의 자바 클래스 파일, 관련 리소스 및 메타데이터를 하나의 파일로 묶는 데 사용되는 패키지 파일 포맷
  • JAR 파일은 .jar 확장자를 가지며, ZIP 파일 포맷을 기반으로 하기 때문에 ZIP 유틸리티를 사용하여 내용을 압축하거나 추출할 수 있음



👉 용도 및 특징


  • 라이브러리 패키징
    • JAR는 여러 자바 클래스 및 관련 리소스를 하나의 파일로 묶어서 코드 라이브러리를 쉽게 공유하고 배포할 수 있게 해 줌
  • 실행 가능한 애플리케이션
    • JAR 파일은 'Main-Class' 메타데이터를 포함하여 실행 가능한 애플리케이션으로 만들 수 있음
    • 이렇게 하면 java -jar filename.jar 명령을 사용하여 애플리케이션을 실행할 수 있음
  • 메타데이터 포함
    • JAR 파일 내에는 META-INF 디렉터리가 포함되어 있음
    • 이 디렉터리 내의 MANIFEST.MF 파일은 JAR 파일에 관한 메타데이터를 담고 있음
    • 예를 들어, 어떤 클래스가 주 실행 클래스인지, JAR 파일에 필요한 다른 JAR 파일은 무엇인지 등의 정보를 포함할 수 있음
  • 보안
    • JAR 파일은 디지털 서명을 통해 서명될 수 있음
    • 이를 통해 개발자나 조직이 JAR의 내용을 변경하지 않았음을 확인할 수 있음
  • 플러그인 또는 확장
    • 많은 시스템과 애플리케이션에서 JAR 파일을 플러그인이나 확장으로 사용
    • 예를 들어, 웹 서버나 IDE 같은 도구에서 JAR 파일을 사용하여 추가 기능을 제공



❓ JAR 파일만 있으면 애플리케이션으로 실행 가능한지?


  • JAR 파일이 실행 가능한 애플리케이션으로 작동하려면 여러 요건을 만족해야 함
    • 실행 가능한 JAR
      • JAR 파일은 'Main-Class' 항목을 포함한 MANIFEST.MF 파일을 내부에 포함해야 함
      • 이 항목은 JAR 파일이 실행될 때 호출되는 주 클래스를 지정
    • 의존성
      • JAR 파일이 다른 라이브러리나 JAR 파일에 의존하는 경우, 해당 의존성들도 같이 존재해야 함
      • 때로는 JAR 파일 내에 의존성 JAR들을 포함시키기도 하지만(이를 "fat JAR" 또는 "uber JAR"라고 부름), 그렇지 않은 경우에는 의존성 JAR들이 모두 CLASSPATH에 포함되어 있어야 함
    • 자바 런타임
      • JAR 파일을 실행하려면 해당 JAR 파일을 실행하는데 필요한 버전의 Java Runtime Environment (JRE)나 Java Development Kit (JDK)가 설치되어 있어야 함
  • JAR 파일이 실행 가능한 애플리케이션으로 제작되었다면, 그것을 실행하는 방법
    java -jar filename.jar
profile
공부 중인 신입 백엔드 개발자입니다

0개의 댓글