본문 바로가기

Java/공부공부

[JAVA] JAR & WAR

 

* JAR 파일 & WAR 파일 :  Java 애플리케이션을 배포하기 위한 파일 형식.

 

[ JAR _Java ARchive ]

  1. 용도:
    • 주로 Java 애플리케이션, 라이브러리, 플러그인을 배포하는 데 사용.
    • 독립 실행형 Java 애플리케이션을 실행할 수 있도록 지원.
  2. 내용물:
    • Java 클래스 파일, 메타데이터, 리소스 파일(이미지, 텍스트 파일 등)을 포함.
    • META-INF/MANIFEST.MF 파일을 통해 메타데이터와 메인 클래스를 지정.
  3. 실행 방식:
    • 독립 실행형 애플리케이션의 경우, java -jar yourapp.jar 명령어로 실행.
    • 라이브러리로 사용될 경우, 다른 Java 애플리케이션에서 이 JAR 파일을 참조.
  4. 구조:
    • 간단하고 특정 구조를 따르지 않음.
    • 모든 파일이 루트 디렉토리에 배치될 수 있음.

 

 

[ WAR _Web Application ARchive ]

  1. 용도:
    • 주로 Java 웹 애플리케이션을 배포하는 데 사용.
    • Servlet, JSP, 웹 서비스 등을 포함하는 웹 애플리케이션을 배포.
  2. 내용물:
    • Java 클래스 파일, JSP 파일, HTML 파일, 이미지, 라이브러리 JAR 파일, 설정 파일(web.xml 등)을 포함
    • WEB-INF 디렉토리 내에 클래스 파일과 라이브러리 JAR 파일이 위치.
      • WEB-INF/classes: 컴파일된 클래스 파일
      • WEB-INF/lib: 종속성 JAR 파일
      • WEB-INF/web.xml: 웹 애플리케이션 배포 설명자
  3. 실행 방식:
    • 서블릿 컨테이너(예: Apache Tomcat, Jetty, JBoss)에서 배포하고 실행.
    • 서블릿 컨테이너는 WAR 파일을 배포하고 웹 애플리케이션을 실행.
  4. 구조:
    • 특정 디렉토리 구조를 따름.
    • WEB-INF 디렉토리가 필수적이며, 이 디렉토리 내에 필요한 파일들이 배치됨.