* JAR 파일 & WAR 파일 : Java 애플리케이션을 배포하기 위한 파일 형식.
[ JAR _Java ARchive ]
- 용도:
- 주로 Java 애플리케이션, 라이브러리, 플러그인을 배포하는 데 사용.
- 독립 실행형 Java 애플리케이션을 실행할 수 있도록 지원.
- 내용물:
- Java 클래스 파일, 메타데이터, 리소스 파일(이미지, 텍스트 파일 등)을 포함.
- META-INF/MANIFEST.MF 파일을 통해 메타데이터와 메인 클래스를 지정.
- 실행 방식:
- 독립 실행형 애플리케이션의 경우, java -jar yourapp.jar 명령어로 실행.
- 라이브러리로 사용될 경우, 다른 Java 애플리케이션에서 이 JAR 파일을 참조.
- 구조:
- 간단하고 특정 구조를 따르지 않음.
- 모든 파일이 루트 디렉토리에 배치될 수 있음.
[ WAR _Web Application ARchive ]
- 용도:
- 주로 Java 웹 애플리케이션을 배포하는 데 사용.
- Servlet, JSP, 웹 서비스 등을 포함하는 웹 애플리케이션을 배포.
- 내용물:
- Java 클래스 파일, JSP 파일, HTML 파일, 이미지, 라이브러리 JAR 파일, 설정 파일(web.xml 등)을 포함
- WEB-INF 디렉토리 내에 클래스 파일과 라이브러리 JAR 파일이 위치.
- WEB-INF/classes: 컴파일된 클래스 파일
- WEB-INF/lib: 종속성 JAR 파일
- WEB-INF/web.xml: 웹 애플리케이션 배포 설명자
- 실행 방식:
- 서블릿 컨테이너(예: Apache Tomcat, Jetty, JBoss)에서 배포하고 실행.
- 서블릿 컨테이너는 WAR 파일을 배포하고 웹 애플리케이션을 실행.
- 구조:
- 특정 디렉토리 구조를 따름.
- WEB-INF 디렉토리가 필수적이며, 이 디렉토리 내에 필요한 파일들이 배치됨.
'Java > 공부공부' 카테고리의 다른 글
[JAVA] Thread.sleep() (0) | 2024.11.27 |
---|---|
[JAVA] port연결 확인 스케줄러 (ScheduledExecutorService, CountDownLatch) (0) | 2024.11.25 |
[기타] System.out.println 실무에서 사용하면 안되는 이유 (0) | 2024.11.16 |
[Java] 자바에서 리눅스 명령어 실행 (JSch , Session , ChannelExec ) (0) | 2024.11.06 |
[Java] Stream API (Collectors 클래스) (0) | 2024.10.29 |