Різниця між баночкою та війною на Яві


462

Яка різниця між файлом a .jarта .warфайлом?
Це лише розширення файлу чи є щось більше?

Відповіді:


387

Від Java Поради: Різниця між вушною баночкою та файлами війни :

Ці файли - це просто зафіксовані файли за допомогою інструмента java jar. Ці файли створюються для різних цілей. Ось опис цих файлів:

  • .jar файли: .jar файли містять бібліотеки, ресурси та файли аксесуарів, такі як файли властивостей.

  • .war файли: файл війни містить веб-додаток, який можна розгорнути на будь-якому контейнері сервлет / jsp. Файл .war містить jsp, html, javascript та інші файли, необхідні для розробки веб-додатків.


Офіційні описи Sun / Oracle:


Статті у Вікіпедії:


10
У мене є сумніви, як jsp та додаткові файли веб-додатків, чому я не можу бути у файлі jar.
Еммануель Анджело.R

@ EmmanuelAngelo.R Вони можуть - jar файл - це лише поштовий файл. Якщо це зробить щось корисне - інша справа, яка залежить від коду, який ви хочете використовувати jar-файл. Як цікавий приклад: сервер безперервної інтеграції Дженкінса поширюється у вигляді файлу WAR, який можна запустити за допомогою "java -jar". Докладніше див. Wiki.jenkins-ci.org/display/JENKINS/… .
Thorbjørn Ravn Andersen

77

.warФайл має специфічну структуру з точки зору того , де деякі файли будуть. Крім цього, так, це просто а .jar.


40

Ви додаєте веб-компоненти до програми J2EE в пакеті, який називається архівом веб-додатків (WAR), що є JAR, подібним до пакету, який використовується для бібліотек класів Java. ВІЙНА зазвичай містить інші ресурси, крім веб-компонентів, зокрема:

  • Класи утиліти на стороні сервера (бази даних, кошики для покупок тощо).
  • Статичні веб-ресурси (HTML, графічні та звукові файли тощо)
  • Клієнтські класи (аплети та корисні класи)

ВІЙНА має специфічну ієрархічну структуру каталогів. Каталог верхнього рівня для ВОП є коренем документа програми. Корінь документа - це місце, де зберігаються сторінки JSP, класи та архіви на стороні клієнта та статичні веб-ресурси.

( джерело )

Таким чином .war є .jar, але він містить компоненти веб-додатків і викладається відповідно до конкретної структури. .War призначений для розміщення на сервері веб-додатків, таких як Tomcat або Jetty, або на сервері Java EE, такому як JBoss або Glassfish.


1
Так це означає, що якщо ви будуєте серверну програму, яка просто використовує сокети та не має інтерфейсу, немає необхідності пакувати її як файл війни?
bot_bot

Насправді зараз я читаю трохи більше, мені Tomcat не потрібен, я можу просто експортувати банку на сервер і запустити її безпосередньо звідти.
bot_bot


15

.warФайл є Application Archive Web , яка працює всередині сервера додатків , в той час як .jarце Java Application Archive , яка запускає додаток робочого столу на комп'ютері користувача.


14
Друге твердження не обов'язково відповідає дійсності. Також банку може запустити вбудований веб-сервер, наприклад, із Spring Boot.
вир

4
навіть це твердження не зовсім вірно. Баночка також може бути просто бібліотекою коду, яка використовується іншими програмами. Іншими словами, він може навіть не містити основного класу для бігу.
Кевін Велкер

@KevinWelker погодився. Навіть у 2011 році (коли це повідомлення було написано) баночка все ще могла представляти бібліотеку. Однак весняного завантаження не було, тому я можу помітити той факт, що ви можете вбудувати веб-сервер у банку, як згаданий вихор.
intrepistar_88

@ Кевін Велкер, не "не цілком", я б сказав "не вся правда", оскільки whirlwin лише згадав про виняток, що цілком вірно, чи не так?
Олексій Мартьянов

12

Файл війни - це спеціальний jar-файл, який використовується для упаковки веб-додатків, щоб полегшити його розгортання на сервері додатків. Зміст файлу війни повинен відповідати визначеній структурі.


10

.jar та .war - це заархівовані архівовані файли. Обидва можуть мати необов'язковий файл маніфесту META-INF / MANIFEST.MF, який містить інформаційну інформацію, як-от версія, та такі інструктивні атрибути, як classpath та main-class для JVM, який буде її виконувати.

.war файл - Архів веб-додатків, призначений для виконання у "Контейнері сервлетів" і може включати інші файли jar (у каталозі WEB-INF / lib), складені класи (у WEB-INF / класах (сервлет теж йде)) .jsp файли зображень, файли тощо. Увесь вміст ВІЙНИ, який існує для створення самостійного модуля.


5

В основному обидва стислі архіви. war використовується для веб-додатків із певною структурою каталогу.


4

war and jar - це архіви файлів Java. Війна - це веб-архів, і вони працюють на веб-сервері. jar - це архів Java.


1

Війна -

розповсюджувати веб-програми на базі Java. WAR має таку ж файлову структуру, що і файл JAR, що представляє собою один стислий файл, який містить кілька файлів, що вбудовані в нього.

Баночка -

Файли .jar містять бібліотеки, ресурси та файли аксесуарів, такі як файли властивостей.

Файли WAR використовуються для об'єднання JSP, сервлетів, файлів класу Java, файлів XML, бібліотек JavaScript, бібліотек JAR, статичних веб-сторінок та будь-яких інших ресурсів, необхідних для запуску програми.


0

Jar : - jar містить лише .class war : - war містить html, js, css та .class, також сторінки jsp та servlets


0

Файли JAR дозволяють пакувати декілька файлів, щоб використовувати їх як бібліотеку, плагін або будь-яку програму. З іншого боку, файли WAR використовуються лише для веб-додатків.

JAR можна створити з будь-якою потрібною структурою. На відміну від цього, WAR має заздалегідь задану структуру з каталогами WEB-INF та META-INF.

Файл JAR дозволяє Java Runtime Environment (JRE) розгортати цілу програму, включаючи класи та пов'язані з нею ресурси в одному запиті. З іншого боку, файл WAR дозволяє легко тестувати та розгортати веб-додаток.


0

Розширення файлу JAR є .jar і створюється за допомогою команди jar з командного рядка (як виконується команда javac). Як правило, файл JAR містить ресурси, пов’язані з Java, такі як бібліотеки, класи тощо. Файл JAR схожий на файл winzip, за винятком того, що файли Jar не залежать від платформи.

Файл WAR - це просто файл JAR, але містить лише файли Java, пов'язані з веб-сторінками, такі як Servlets, JSP, HTML.

Для виконання файлу WAR потрібен веб-сервер або веб-контейнер, наприклад, Tomcat або Weblogic або Websphere. Для виконання файлу JAR достатньо простого JDK.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.