JAR vs WAR
JAR и WAR - это два типа файловых архивов. Точнее, WAR-файл - это тоже JAR-файл, но они используются для разных целей. Файлы JAR похожи на хорошо известные файлы ZIP. Их можно использовать для архивирования любого общего назначения, но чаще всего файлы JAR используются в качестве контейнеров для файлов классов Java и файлов ресурсов, которые составляют приложение Java. Файлы WAR используются специально для развертывания веб-приложений.
Что такое JAR?
JAR (Java ARchive) - это файловый архив, который содержит множество других файлов. Файлы JAR обычно используются разработчиками Java для распространения приложений Java или библиотек Java с использованием файлов JAR в качестве контейнеров для файлов классов Java и соответствующих файлов ресурсов (т.е. текст, аудио, видео и др.). Хорошо известный формат архивирования файлов ZIP является основой, на которой построен файл JAR. Пользователи могут использовать команду jar из JDK (Java Development Kit) или обычное программное обеспечение ZIP для извлечения содержимого файлов JAR. Файлы JAR - это очень удобный способ загрузки всего веб-приложения в одном файле без необходимости загружать все файлы, из которых состоит веб-приложение, по отдельности. Для чтения/записи файлов JAR разработчики Java используют классы, содержащиеся в пакете java.util.zip. Если файл JAR предполагается выполнять как отдельное приложение, то один из классов будет указан как «основной» класс в записях файла манифеста. Исполняемые файлы JAR можно запустить с помощью команды java с атрибутом jar (например, java -jar foo.jar).
Что такое ВОЙНА?
WAR (архив веб-приложения) - это файл JAR, используемый в качестве контейнера для группы файлов ресурсов веб-приложения (из которых состоит веб-приложение), таких как JSP (страницы сервера Java), сервлеты, файлы классов, XML файлы и веб-страницы (HTML). Файлы WAR идентифицируются по расширению.war. Они были разработаны Sun Microsystems (первоначальные разработчики языка программирования Java). Цифровые подписи, используемые в файлах JAR (для передачи кода), можно использовать и в файлах WAR.
Файл WAR внутренне организован в виде иерархии специальных каталогов. Структура веб-приложения, содержащегося в файле WAR, определяется в файле web.xml (который находится в каталоге /WEB-INF). Web.xml также описывает, какой URL связан с каким сервлетом. Они также определяют переменные, доступные внутри сервлета, и зависимости, которые необходимо настроить. Однако, если файл WAR содержит только файлы JSP, файл web.xml необязателен.
В чем разница между JAR и WAR?
Файлы JAR имеют расширение.jar, а файлы WAR имеют расширение.war. Но файл WAR - это особый тип файла JAR. Файлы JAR содержат файлы классов, библиотеки, ресурсы и файлы свойств. Файлы WAR содержат сервлеты, страницы JSP, страницы HTML, код JavaScript. Файлы JAR используются для архивирования всего приложения Java (настольного компьютера), а файлы WAR используются для развертывания веб-приложений.