Lonely Snowman
 

WAR 파일과 JAR 파일의 차이

WAR (Web Application Archive) 파일

  • 용도: Java 기반 웹 애플리케이션 배포에 사용됨.
  • 구성:
    • 웹 애플리케이션의 구성 요소 (예: HTML, CSS, JavaScript 파일).
    • Java 서블릿, JSP 파일, WEB-INF 디렉토리 (배포 설명자 파일 web.xml 포함).
  • 배포 환경: 주로 웹 애플리케이션 서버(예: Tomcat, Jetty)에 배포.
  • 특징:
    • 웹 애플리케이션의 표준 포맷.
    • JSP와 서블릿 같은 웹 관련 자원들을 실행할 수 있는 환경 제공.

 

 

JAR (Java Archive) 파일

  • 용도: Java 애플리케이션 또는 라이브러리의 패키징에 사용됨.
  • 구성:
    • .class 파일(컴파일된 Java 코드).
    • 관련 리소스 (예: 설정 파일, 이미지).
    • META-INF 디렉토리 (MANIFEST.MF 파일 포함).
  • 배포 환경:
    • 일반 Java 실행 환경 (JRE)에서 실행 가능.
    • Java 프로그램 또는 라이브러리 파일로 사용.
  • 특징:
    • 독립 실행형 애플리케이션을 포함하거나 다른 애플리케이션에서 참조 가능한 라이브러리 역할.

 

 

WAR vs JAR 주요 차이점

특징 WAR JAR
용도 웹 애플리케이션 배포 일반 Java 애플리케이션 또는 라이브러리
포맷 표준 Java EE 표준 Java SE 표준
파일 구조 웹 관련 파일과 WEB-INF 포함 Java 코드와 리소스만 포함
실행 환경 웹 서버에서 실행 Java Runtime Environment (JRE)
주요 목적 웹 앱을 위한 구성과 배포 코드 재사용과 실행 가능 파일 생성

 

 

 

화면을 JSP를 사용해 구성하고 외장 WAS를 사용한다면 WAR를 사용한다.

SpringBoot의 경우 JSP와 외장 WAS를 사용하지 않는 JAR를 사용한다.

 

 

 

 

 

참고

 

JAR vs WAR 배포의 차이

기본적으로 JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징 한 것입

velog.io