Vad är skillnaden mellan JAR och WAR Files

De huvudskillnad mellan JAR och WAR Files är det JAR-filer är de filer som har Java-klassfiler, tillhörande metadata och resurser samlade i en enda fil för att utföra en Java-applikation medan WAR-filerna är de filer som innehåller Servlet, JSP, HTML, JavaScript och andra filer som är nödvändiga för att utveckla webbapplikationer.

Java är ett högkvalitativt, generellt programmerat språk som används för att utveckla applikationer för olika domäner. Java är populär på grund av flera anledningar. Java-källkoden kompilerar till en mellankod som heter en bytecode. Varje plattform med en Java Virtual Machine (JVM) kan utföra denna bytecode. Därför är Java plattformoberoende. Dessutom är Java robust, säker och stöder multithreading. Två typer av filer som är relaterade till Java-programmering är JAR och WAR.

Viktiga områden som omfattas

1. Vad är JAR-filer
     - Definition, Funktionalitet
2. Vad är WAR-filer
     - Definition, Funktionalitet
3. Vad är skillnaden mellan JAR och WAR Files
    - Jämförelse av viktiga skillnader

Nyckelbegrepp

JAR, Java, JVM, WAR

Vad är JAR-filer

En JAR-fil är en fil som innehåller alla komponenter för att skapa en fristående körbar Java-applikation. Dessutom innehåller en JAR-fil sammansatt Java-källkod, manifestfil, XML-baserade konfigurationsdata, JSON-baserade datafiler, bilder och ljud. Det är en aggregering av alla dessa filer i en enda komprimerad fil. Komprimering av alla filer bidrar till att minska programmets storlek. Dessutom gör det det lättare att flytta JAR-filen över nätverket mellan olika plattformar.

Figur 1: Lägga till Java-filer

Varje Java Development Kit (JDK) innehåller ett JAR-verktyg för att stödja JAR-filer. Det låter skapa nya JAR-filer med en manifestfil och extrahera allt innehåll i en JAR-fil till filsystemet. Dessutom hjälper JAR-verktyget att uppdatera befintliga JAR-filer.

Vad är WAR-filer

En WAR-fil innehåller filer relaterade till ett webbprojekt. Den innehåller servlet-, JSP-, XML-, HTML-, CSS- och JavaScript-filer som kan distribueras på någon servlet / JSP-behållare. JDK-burkverktyget hjälper till att skapa en WAR-fil. Dessa filer finns i WEB-INF-mappen i projektet. En WAR-fil kombinerar alla filer i en enda enhet. Därför tar det en minimal tid att överföra en fil från klient till server.

Figur 2: JSP Web Application

Det finns två metoder för att distribuera en WAR-fil: genom att använda serverns kontrollpanel eller manuellt med krigsfilen i en specifik mapp på servern. Om programmeraren vill installera en WAR-fil i en server som Apache Tomcat manuellt kan han gå till Tomcat-katalogen i Tomcat och klistra in WAR-filen i den katalogen. Om inte, när webbprojektet körs, tar servern ut WAR-filen internt.

Skillnad mellan JAR och WAR Files

Definition

En JAR-fil är en fil med Java-klasser, tillhörande metadata och resurser som text, bilder samlade i en fil. En WAR-fil är en fil som används för att distribuera en samling JAR-filer, JSP, Servlet, XML-filer, statiska webbsidor som HTML och andra resurser som utgör en webbapplikation. Således förklarar detta huvudskillnaden mellan JAR och WAR Files. 

Lång form

JAR-filen står för Java Archive. WAR-filen står för webbapplikationsresurs eller webbapplikationsarkiv.

Filförlängning

Dessutom har en JAR-fil .jar filtillägget medan en WAR-fil har .war filförlängning.

Bestå av

JAR-filer innehåller kompilerade Java-källkod, manifestfil, XML-baserade konfigurationsdata, JSON-baserade datafiler, bilder och ljud. I kontrast innehåller WAR-filer servlet, JSP, XML, HTML, CSS och JavaScript-filer. Det här är en annan skillnad mellan JAR och WAR Files.

Användande

Deras användning tillskrivs en annan skillnad mellan JAR och WAR Files. Det är; en JAR-fil tillåter Java Runtime Environment (JRE) att distribuera en hel applikation inklusive klasserna och de associerade resurserna i en enda förfrågan. Å andra sidan tillåter en WAR-fil att testa och distribuera en webbapplikation enkelt.

Slutsats

Huvudskillnaden mellan JAR och WAR Files är deras innehåll. JAR-filerna är de filer som har Java-klassfiler, tillhörande metadata och resurser samlade i en enda fil för att utföra en Java-applikation. WAR-filerna är de filer som innehåller Servlet, JSP, HTML, JavaScript och andra filer som är nödvändiga för att utveckla webbapplikationer.

Referens:

1. "JAR (File Format)." Wikipedia, Wikimedia Foundation, 26 aug 2018, Tillgänglig här.
2. "Vad är JAR-fil (Java-arkiv)? - Definition från WhatIs.com. "TheServerSide.com, tillgängligt här.
3. "WAR (File Format)." Wikipedia, Wikimedia Foundation, 13 juli 2018, Tillgänglig här.

Image Courtesy:

1. "Glpk för Java Eclipse-projektegenskaper" Genom Xypron - Egent arbete (CC BY-SA 3.0) via Commons Wikimedia
2. "JSPLife" Av användare: Zedlander, Användare: Sae1962 - (CC BY-SA 3.0) via Wikimedia Commons