1. Обзор
В этом кратком руководстве мы сосредоточимся на различиях между упаковкой JAR и WAR в Java.
Во-первых, мы определим каждый вариант упаковки отдельно. После этого мы обобщим их различия.
2. Упаковка БАНОК
Проще говоря, JAR – или Java – архив- это формат файла пакета. Файлы JAR имеют расширение .jar и могут содержать библиотеки, ресурсы и файлы метаданных.
По сути, это сжатый файл, содержащий сжатые версии файлов .class и ресурсы скомпилированных библиотек и приложений Java.
Например, вот простая структура файла JAR:
META-INF/ MANIFEST.MF com/ baeldung/ MyApplication.class
Файл META-INF/MANIFEST.MF может содержать дополнительные метаданные о файлах, хранящихся в архиве.
Мы можем создать файл JAR с помощью команды jar или с помощью таких инструментов, как Maven .
3. ВОЕННАЯ упаковка
WAR расшифровывается как Архив веб-приложений или ресурс веб-приложений. Эти архивные файлы имеют расширение .war и используются для упаковки веб-приложений , которые мы можем развернуть в любом контейнере Servlet/JSP.
Вот пример макета типичной структуры файлов WAR:
META-INF/ MANIFEST.MF WEB-INF/ web.xml jsp/ helloWorld.jsp classes/ static/ templates/ application.properties lib/ // *.jar files as libs
Внутри у него есть каталог META-INF , содержащий полезную информацию в MANIFEST.MF о веб-архиве. Каталог META-INF является частным и не может быть доступен извне.
С другой стороны, он также содержит общий каталог WEB-INF со всеми статическими веб-ресурсами, включая HTML-страницы, изображения и файлы JS. Более того, он содержит web.xml файл, классы сервлетов и библиотеки.
Мы можем использовать те же инструменты и команды, которые мы использовали для создания JAR, чтобы создать архив .war .
4. Основные отличия
Итак, каковы основные различия между этими двумя типами архивов?
Первое и наиболее очевидное различие-это расширение файла /. Банки имеют расширение .jar , в то время как файл WAR имеет расширение .war .
Второе основное различие заключается в их назначении и способе их функционирования . Файлы JAR позволяют нам упаковывать несколько файлов, чтобы использовать их в качестве библиотеки, плагина или любого приложения. С другой стороны, файлы WAR используются только для веб-приложений.
Структура архивов также отличается. Мы можем создать банку с любой желаемой структурой. В отличие от этого, WAR имеет предопределенную структуру с каталогами WEB-INF и META-INF .
Наконец, мы можем запустить JAR из командной строки , если мы создадим его как исполняемый JAR без использования дополнительного программного обеспечения. Или мы можем использовать его в качестве библиотеки. Напротив, нам нужен сервер для выполнения ВОЙНЫ .
5. Заключение
В этой краткой статье мы сравнили типы упаковки .jar и .war Java. При этом мы также отметили, что, хотя оба используют один и тот же формат ZIP-файла, есть несколько важных различий.