728x90
JAR(Java ARchive)
- Java 프로그램의 실행에 필요한 클래스 파일이나 설정 파일이 정리되어 있는 아카이브이다.
- Java로 작성한 어플리케이션을 배포할 때 관련 파일을 한 번에 패키징 할 때 쓰인다.
- 많은 클래스 라이브러리가 이 형식으로 배포되고 있다.
- 클래스 파일과 각 클래스들이 사용하는 관련 리소스 파일, 메타 데이터를 압축한다.
- 실제로는 zip 파일 포맷으로 압축된다.
- 내장 서버 사용에 최적화되어 있다.
- JRE(Java Runtime Environment)가 있으면 실행된다.
- java -jar {project_name}.jar
WAR(Web application ARchive)
- Java의 Web 어플리케이션으로 이용되는 클래스 파일(servlet), 설정 파일(xml), JSP나 HTML 파일, JAR 형식의 라이브러리 등이 압축되어 있는 아카이브이다.
- 내장 서버도 사용이 가능하지만 주로 외부 서버에 배포하는 목적으로 사용한다.
- 웹 어플리케이션 설정에 대한 정의 파일 web.xml이 있다.
- web.xml이 포함되어 Tomcat 등의 애플리케이션 서버에 WAR 파일을 배포하면 이 파일을 바탕으로 배포된다.
- 사전 정의된 구조를 사용한다.(WEB-INF, META-INF)
EAR(Enterprise ARchive)
- Java EE(Java platform, Enterprise Edition) 기반 어플리케이션의 패키지 형식 확장자를 말한다.
- 여러 개의 WAR 파일이나 EJB 파일, 그리고 이러한 어플리케이션에 필요한 JAR 파일을 포함할 수 있다.
- 위의 모든 파일은 확장자가 .ear(enterprise archive)인 JAR 파일로 패키지 되어 애플리케이션 서버에 배치된다.
- META-INF 폴더에 포함된 application.xml 파일이 필요하다.
JAR, WAR, EAR 공통점
- Java 커뮤니티의 사양에 따라 정의된 zip 형식의 패키지(여러 개의 파일을 정리한 아카이브)이다.
- java -jar를 이용해 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일을 패키징 한 것이다.
JAR, WAR, EAR 차이점
서로 다른 환경을 대상으로 한다.
- JAR는 Java의 설치만 필요하다.
- WAR는 Java EE Web Profile 호환 응용 프로그램 서버만 실행하면 된다.
- EAR는 완전한 Java EE(Java Platform, Enterprise Edition) 또는 WebSphere, JBoss 같은 Jakarta Enterprise Edition (EE) 호환 애플리케이션 서버가 필요하다.
내부 제한 사항 및 요구사항이 다르다.
- JAR는 요구사항이 없다.
- WAR는 WEB-INF 폴더에 포함된 web.xml 파일이 있어야 한다.
- EAR는 META-INF 폴더에 application.xml 파일이 있어야 한다.
참고
https://simuing.tistory.com/entry/JAVA-EAR-JAR-WAR-차이점
728x90
'[JAVA]' 카테고리의 다른 글
자바에서 RSA 키 생성, SHA-256을 활용한 전자서명 구현을 간단하게 따라하고 깊이있게 알아보자. (9) | 2023.10.04 |
---|---|
자바에서 SHA-256 Hashing 구현하기 (2) | 2023.09.03 |
slf4j, log4j, log4j2, logback & logging level 요약 정리 (2) | 2023.05.22 |
WEB-INF에 대해 알아보기 (0) | 2023.05.15 |
자바 프로젝트에서 엑셀 데이터를 읽어들이는 방법(Apache POI Workbook , Sax Parsing) (0) | 2023.05.12 |