본문 바로가기

JAVA

[JAVA] JAR, WAR, EAR 정리

반응형

 

J2EE 어플리케이션에서 모듈은 기능에 따라 JAR, WAR, EAR 로 패키지 된다.

1. JAR(Java ARchive)

 - Java 프로그램의 실행에 필요한 클래스 파일이나 설정 파일이 정리되어 있는 아카이브

 - Java로 작성한 어플리케이션을 배포할 때에 관련 파일을 1개에 패키징할 때에 이용되고 실제로는 많은 클래스 라이브러리는

   이 형식으로 배포되고 있다.
 - 클래스 파일과 각 클래스들이 사용하는 관련 리소스 파일 및 메타 데이터를 압축한 파일
 - 실제로는 zip 파일 포맷으로 압축이 된다.
 - JRE(JAVA Runtime Environment)가 있으면 실행된다.

java -jar {project_name}.jar

 - JAR 내 파일 확인 방법

jar tf [파일명]
jar -tf [파일명]

 

2. WAR(Web applicaton ARchive)

 - Java의 Web 어플리케이션으로 이용되는 클래스 파일(servlet), 설정 파일(xml), JSP나 HTML 파일, JAR 형식의 라이브러리 등이

   압축되어 있는 아카이브

 - 웹 어플리케이션 설정에 대한 정의 파일 web.xml 이 있다.

 - web.xml이 포함되어 Tomcat 등의 애플리케이션 서버에 WAR 파일을 배포하면, 이 파일을 바탕으로 배포된다.

 - 사전 정의된 구조를 사용한다. (WEB-INF, META-INF)

 

3. EAR(Enterprise ARchive)

 - Java EE(Java Platform, Enterprise Edition) 기반 애플리케이션의 패키지 형식 확장자.
 - 임의의 수의 WAR 파일이나 EJB 파일, 그리고 이러한 어플리케이션에 필요한 JAR 파일을 포함할 수 있다.
 - 위의 모든 파일(.jar, .war)은 확장자가 .ear(enterprise archive)인 JAR 파일로 패키지되어, Application Server에 배치된다.
 - META-INF 폴더에 포함된 application.xml 파일이 필요하다.

 

JAR, WAR, EAR 차이점
 - JAR, WAR, EAR 파일의 가장 큰 차이점은 서로 다른 환경을 대상으로 한다는 점이다.
 - 파일의 크기는 EAR > WAR > JAR 이렇게 된다.


JAR, WAR, EAR 공통점
 - 모두 Java 커뮤니티의 사양에 따라 정의된 zip 형식의 패키지(복수의 파일을 정리한 아카이브)이다.
 - Java Jar(java -jar)를 이용해 생성된 압축파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일

   (리소스, 속성 파일 등)을 패키징 한 것이다.

 

 

[참고]

- https://www.devkuma.com/docs/java/jar-war-ear/#jar-war-ear-%EA%B3%B5%ED%86%B5%EC%A0%90 

반응형