Разница между банкой и войной на Яве


462

В чем разница между файлом .jarи .warфайлом?
Это только расширение файла или есть что-то большее?

Ответы:


388

Из Java Советы: Разница между ear jar и war файлами :

Эти файлы - просто заархивированные файлы, используя инструмент java jar. Эти файлы созданы для разных целей. Вот описание этих файлов:

  • Файлы .jar. Файлы .jar содержат библиотеки, файлы ресурсов и вспомогательные файлы, например файлы свойств.

  • Файлы .war . Файл war содержит веб-приложение, которое можно развернуть в любом контейнере servlet / jsp. Файл .war содержит jsp, html, javascript и другие файлы, необходимые для разработки веб-приложений.


Официальные описания Sun / Oracle:


Статьи Википедии:


10
У меня есть сомнения, как JSP и дополнительные файлы веб-приложений, почему не может быть в JAR-файл.
— Эммануэль Анджело. R

@ EmmanuelAngelo.R Они могут - файл jar - это просто файл zip. Если это сделает что-то полезное, это другой вопрос, который зависит от кода, который вы хотите использовать файл JAR. В качестве интересного примера сервер непрерывной интеграции Jenkins распространяется в виде файла WAR, который можно запустить с помощью «java -jar». Смотрите wiki.jenkins-ci.org/display/JENKINS/… для подробностей.
— Турбьёрн Равн Андерсен

77

.warФайл имеет специфическую структуру с точки зрения того , где некоторые файлы будут. Кроме этого, да, это просто .jar.


40

Веб-компоненты добавляются в приложение J2EE в пакете, называемом архивом веб-приложения (WAR), который представляет собой JAR-файл, аналогичный пакету, используемому для библиотек классов Java. WAR обычно содержит другие ресурсы помимо веб-компонентов, в том числе:

  • Служебные классы на стороне сервера (компоненты базы данных, корзины покупок и т. Д.).
  • Статические веб-ресурсы (HTML, изображения, звуковые файлы и т. Д.)
  • Классы на стороне клиента (апплеты и служебные классы)

WAR имеет определенную иерархическую структуру каталогов. Каталог верхнего уровня WAR является корневым каталогом приложения. В корне документа хранятся страницы JSP, клиентские классы и архивы, а также статические веб-ресурсы.

( источник )

Таким образом, .war - это .jar, но он содержит компоненты веб-приложения и выстроен в соответствии с определенной структурой. .War предназначен для развертывания на сервере веб-приложений, таком как Tomcat или Jetty, или на сервере Java EE, таком как JBoss или Glassfish.


1
Значит ли это, что если вы создаете серверное приложение, которое использует только сокеты и не имеет никакого пользовательского интерфейса, нет необходимости упаковывать его как файл war?
— bot_bot

На самом деле, сейчас я читаю немного больше, мне не нужен Tomcat, я могу просто экспортировать jar на сервер и запустить его прямо оттуда.
— bot_bot


15

.warФайл является Application Archive Web , которая работает внутри сервера приложений , в то время как .jarэто Java Application Archive , которая запускает приложение рабочего стола на компьютере пользователя.


14
Второе утверждение не обязательно верно. Jar также может запустить встроенный веб-сервер, например, с Spring Boot.
— Whirlwin

4
даже это утверждение не совсем верно. Баночка также может быть просто библиотекой кода, который будет использоваться другими приложениями. Другими словами, он может даже не содержать основной класс для работы.
— Кевин Велкер

@KevinWelker согласился. Даже в 2011 году (когда этот пост был написан) баночка все еще могла просто представлять библиотеку. Тем не менее, весенней загрузки не было, поэтому я вижу, что вы можете встроить веб-сервер в банку, подобную упомянутому вихрю.
— intrepistar_88

@ Кевин Уэлкер, а не «не совсем», я бы сказал «не вся правда», поскольку вихрь только что упомянул исключение, которое полностью верно, не так ли?
— Алексей

12

Файл war - это специальный файл jar, который используется для упаковки веб-приложения, чтобы упростить его развертывание на сервере приложений. Содержимое файла войны должно соответствовать определенной структуре.


10

.jar и .war - оба заархивированные заархивированные файлы. Оба могут иметь дополнительный файл манифеста META-INF / MANIFEST.MF, который содержит информативную информацию, такую ​​как управление версиями, и атрибуты инструкций, такие как classpath и main-class для JVM, которые будут его выполнять.

Файл .war - архив веб-приложений, предназначенный для выполнения внутри «контейнера сервлетов» и может включать в себя другие jar-файлы (в каталоге WEB-INF / lib), скомпилированные классы (в WEB-INF / classes (сервлет также идет туда)) .jsp файлы изображений, файлов и т. д. Весь контент WAR, который существует для создания автономного модуля.


5

В основном оба сжатых архива. war используется для веб-приложений с определенной структурой каталогов.


4

war и jar - это архивы для java-файлов. Война это веб-архив, и они работают на веб-сервере. jar - это архив java


1

Война -

распространять веб-приложения на основе Java. WAR имеет такую ​​же файловую структуру, что и JAR-файл, который представляет собой один сжатый файл, содержащий несколько файлов, связанных внутри него.

Баночка -

Файлы .jar содержат библиотеки, файлы ресурсов и вспомогательные файлы, такие как файлы свойств.

Файлы WAR используются для объединения JSP, сервлетов, файлов классов Java, файлов XML, библиотек javascript, библиотек JAR, статических веб-страниц и любых других ресурсов, необходимых для запуска приложения.


0

Jar : - jar содержит только .class war : - war содержит html, js, css и .class, а также страницы jsp и servlets


0

JAR-файлы позволяют упаковать несколько файлов, чтобы использовать их в качестве библиотеки, плагина или любого приложения. С другой стороны, файлы WAR используются только для веб-приложений.

JAR может быть создан с любой желаемой структурой. Напротив, WAR имеет предопределенную структуру с каталогами WEB-INF и META-INF.

Файл JAR позволяет Java Runtime Environment (JRE) развернуть все приложение, включая классы и связанные ресурсы, в одном запросе. С другой стороны, файл WAR позволяет легко тестировать и развертывать веб-приложение.


0

Расширение файла JAR .jar и создается с помощью команды jar из командной строки (например, выполняется команда javac). Обычно файл JAR содержит связанные с Java ресурсы, такие как библиотеки, классы и т. Д. Файл JAR похож на файл winzip, за исключением того, что файлы Jar не зависят от платформы.

Файл WAR - это просто файл JAR, но он содержит только связанные с Web файлы Java, такие как сервлеты, JSP, HTML.

Для выполнения файла WAR требуется веб-сервер или веб-контейнер, например, Tomcat или Weblogic или Websphere. Чтобы выполнить файл JAR, достаточно простого JDK.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.