Рубрики
Без рубрики

Различия между БАНОЧНОЙ и ВОЕННОЙ упаковкой

Узнайте о различиях между упаковкой JAR и WAR в Java

Автор оригинала: baeldung.

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