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
'JAVA' 카테고리의 다른 글
[JAVA] java.io.IOException: User limit of inotify instances reached or too many open files (0) | 2023.12.28 |
---|---|
[JAVA] Find the jar file where the class file is used (0) | 2023.12.20 |
[JAVA] JAR(JAVA Archive) 정리 (0) | 2023.06.26 |
[JAVA] JVM(Java Virtual Machine) 정리 (0) | 2023.06.26 |
[JAVA] Java Cipher Suites 리스트 확인 (0) | 2023.02.22 |