1. Обзор
В этом кратком руководстве мы сосредоточимся на различиях между пакетами JAR и WAR в Java.
Во-первых, мы определим каждый вариант упаковки отдельно. После этого мы суммируем их различия.
2. Банковская упаковка
Проще говоря, JAR — или Java Archive — это формат файла пакета. Файлы JAR имеют расширение .jar
и могут содержать библиотеки, ресурсы и файлы метаданных.
По сути, это заархивированный файл, содержащий сжатые версии файлов .class
и ресурсы скомпилированных библиотек и приложений Java.
Например, вот простая файловая структура JAR:
META-INF/
MANIFEST.MF
com/
foreach/
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-файлы имеют расширение .jar
, тогда как файл WAR имеет расширение .war
.
Вторым основным отличием является их назначение и способ функционирования . Файлы JAR позволяют нам упаковывать несколько файлов, чтобы использовать их в качестве библиотеки, плагина или любого другого приложения. С другой стороны, файлы WAR используются только для веб-приложений.
Структура архивов также отличается. Мы можем создать JAR с любой желаемой структурой. Напротив, WAR имеет предопределенную структуру с каталогами WEB-INF
и META-INF
.
Наконец, мы можем запустить JAR из командной строки , если создадим его как исполняемый JAR без использования дополнительного программного обеспечения. Или мы можем использовать его как библиотеку. Напротив, нам нужен сервер для выполнения WAR .
5. Вывод
В этой быстрой статье мы сравнили типы упаковки Java .jar
и .war .
При этом мы также отметили, что, хотя оба используют один и тот же формат файла ZIP, есть несколько важных отличий.