자바에서 jar와 war의 차이점


462

a .jar.war파일 의 차이점은 무엇입니까 ?
파일 확장자 만입니까, 아니면 더 많은 것이 있습니까?

답변:


387

에서 자바 팁 : 귀 항아리와 전쟁 파일의 차이 :

이 파일들은 단순히 자바 jar 툴을 사용하여 압축 된 파일입니다. 이 파일들은 다른 목적으로 만들어졌습니다. 이러한 파일에 대한 설명은 다음과 같습니다.

  • .jar 파일 : .jar 파일 에는 특성 파일과 같은 라이브러리, 자원 및 액세서리 파일 이 있습니다.

  • .war 파일 : war 파일 에는 servlet / jsp 컨테이너에 배치 할 수있는 웹 애플리케이션 이 포함되어 있습니다. .war 파일 에는 웹 애플리케이션 개발에 필요한 jsp, html, javascript 및 기타 파일이 포함되어 있습니다 .


공식 Sun / Oracle 설명 :


위키피디아 기사 :


10
jsp 및 추가 웹 응용 프로그램 파일로 jar 파일에있을 수없는 이유가 의심됩니다.
Emmanuel Angelo.R

@ EmmanuelAngelo.R 그들은 할 수 있습니다-jar 파일은 단지 zip 파일입니다. 그것이 유용한 일을한다면 jar 파일을 활용하려는 코드에 따라 다른 문제가 있습니다. 흥미로운 예로 Jenkins Continuous Integration 서버는 "java -jar"로 실행할 수있는 WAR 파일로 배포됩니다. 자세한 내용은 wiki.jenkins-ci.org/display/JENKINS/… 를 참조하십시오.
Thorbjørn Ravn Andersen


40

Java 클래스 라이브러리에 사용되는 패키지와 유사한 JAR 인 WAR (Web Application Archive)이라는 패키지의 J2EE 애플리케이션에 웹 컴포넌트를 추가합니다. WAR에는 일반적으로 다음을 포함하여 웹 구성 요소 이외의 다른 자원이 포함됩니다.

  • 서버 측 유틸리티 클래스 (데이터베이스 Bean, 장바구니 등).
  • 정적 웹 리소스 (HTML, 이미지 및 사운드 파일 등)
  • 클라이언트 측 클래스 (애플릿 및 유틸리티 클래스)

WAR에는 특정 계층 디렉토리 구조가 있습니다. WAR의 최상위 디렉토리는 응용 프로그램의 문서 루트입니다. 문서 루트는 JSP 페이지, 클라이언트 측 클래스 및 아카이브 및 정적 웹 자원이 저장되는 위치입니다.

( 소스 )

따라서 .war은 .jar이지만 웹 응용 프로그램 구성 요소를 포함하며 특정 구조에 따라 배치됩니다. .war은 Tomcat 또는 Jetty와 같은 웹 응용 프로그램 서버 또는 JBoss 또는 Glassfish와 같은 Java EE 서버에 배포되도록 설계되었습니다.


1
소켓 만 사용하고 UI가없는 서버 응용 프로그램을 빌드하는 경우 war 파일로 패키지 할 필요가 없습니다.
bot_bot

실제로 지금은 Tomcat이 필요없는 조금 더 많이 읽고 있습니다. 단지 jar를 서버로 내 보내서 거기에서 직접 실행할 수 있습니다.
bot_bot

40

WAR웹 애플리케이션 ARchive의 약자

JARJava ARchive의 약자

여기에 이미지 설명을 입력하십시오


EAR은 엔터프라이즈 애플리케이션 ARchive입니까?
Funder

15

.war파일은이 동안 응용 프로그램 서버 내에서 실행되는 웹 응용 프로그램 아카이브입니다 .jar사용자의 컴퓨터에 데스크톱 응용 프로그램을 실행하는 자바 응용 프로그램 아카이브입니다.


14
두 번째 진술이 반드시 사실은 아닙니다. jar는 내장 웹 서버를 시작할 수도 있습니다 (예 : Spring Boot).
whirlwin

4
그 진술조차도 전적으로 사실이 아닙니다. jar는 다른 응용 프로그램에서 사용하는 코드 라이브러리 일 수도 있습니다. 즉, 실행을위한 기본 클래스를 포함하지 않을 수도 있습니다.
케빈 웰커

@KevinWelker가 동의했습니다. 2011 년 (이 게시물이 작성된 시점)에도 항아리는 여전히 라이브러리를 나타낼 수 있습니다. 그러나 스프링 부트가 없었으므로 회오리 바람과 같은 항아리에 웹 서버를 내장 할 수 있다는 사실을 간과 할 수 있습니다.
intrepistar_88

@Kevin Welker, "전적으로 아님"이 아니라, 소용돌이가 단지 예외를 언급 한 것처럼 "모든 진실이 아님"이라고 말할 것입니다.
Alexei Martianov

12

war 파일은 웹 서버를 응용 프로그램 서버에 쉽게 배포 할 수 있도록 웹 응용 프로그램을 패키지화하는 데 사용되는 특수 jar 파일입니다. war 파일의 내용은 정의 된 구조를 따라야합니다.


10

.jar 및 .war은 모두 압축 된 아카이브 파일입니다. 둘 다 버전 관리와 같은 유익한 정보를 포함하는 선택적 META-INF / MANIFEST.MF 매니페스트 파일과이를 실행할 JVM의 classpath 및 main-class와 같은 지시 속성을 가질 수 있습니다.

.war 파일- '서블릿 컨테이너'내에서 실행되도록 고안된 웹 응용 프로그램 아카이브이며 다른 jar 파일 (WEB-INF / lib 디렉토리에 있음) 컴파일 된 클래스 (WEB-INF / 클래스에 있음)도 포함 할 수 있습니다. 파일 이미지, 파일 등. 자체 포함 모듈을 작성하기 위해 존재하는 모든 WAR 컨텐츠.


5

기본적으로 두 압축 아카이브. war은 특정 디렉토리 구조를 가진 웹 응용 프로그램에 사용됩니다.


4

war 및 jar는 Java 파일의 아카이브입니다. war는 웹 아카이브이며 웹 서버에서 실행 중입니다. jar은 Java 아카이브입니다.


1

전쟁-

Java 기반 웹 응용 프로그램을 배포합니다. WAR은 JAR 파일과 파일 구조가 동일합니다. JAR 파일은 여러 개의 파일이 묶여있는 단일 압축 파일입니다.

항아리-

.jar 파일에는 속성 파일과 같은 라이브러리, 리소스 및 액세서리 파일이 포함되어 있습니다.

WAR 파일은 JSP, 서블릿, Java 클래스 파일, XML 파일, 자바 스크립트 라이브러리, JAR 라이브러리, 정적 웹 페이지 및 애플리케이션 실행에 필요한 기타 자원을 결합하는 데 사용됩니다.


0

Jar :-jar에는 .class war 만 포함 : -war 에는 html, js, css 및 .class도 포함됩니다. jsp 및 서블릿 페이지


0

JAR 파일은 라이브러리, 플러그인 또는 모든 종류의 응용 프로그램으로 사용하기 위해 여러 파일을 패키지화 할 수 있습니다. 반면에 WAR 파일은 웹 응용 프로그램에만 사용됩니다.

JAR은 원하는 구조로 만들 수 있습니다. 반대로 WAR은 WEB-INF 및 META-INF 디렉토리로 사전 정의 된 구조를 갖습니다.

JAR 파일을 사용하면 JRE (Java Runtime Environment)가 단일 요청으로 클래스 및 연관된 자원을 포함한 전체 애플리케이션을 배치 할 수 있습니다. 반면에 WAR 파일을 사용하면 웹 응용 프로그램을 쉽게 테스트하고 배포 할 수 있습니다.


0

JAR 파일 확장자는 .jar이며 javac 명령이 실행되는 것처럼 명령 프롬프트에서 jar 명령으로 작성됩니다. 일반적으로 JAR 파일에는 라이브러리, 클래스 등과 같은 Java 관련 리소스가 포함되어 있습니다. JAR 파일은 플랫폼 독립적 인 점을 제외하고 winzip 파일과 같습니다.

WAR 파일은 단순히 JAR 파일이지만 Servlets, JSP, HTML과 같은 웹 관련 Java 파일 만 포함합니다.

WAR 파일을 실행하려면 Tomcat, Weblogic 또는 Websphere와 같은 웹 서버 또는 웹 컨테이너가 필요합니다. JAR 파일을 실행하려면 간단한 JDK로 충분합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.