Перейти к основному содержимому

Различия между упаковкой JAR и WAR

· 3 мин. чтения

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, есть несколько важных отличий.