helpermethod
helpermethod

Reputation: 62294

Difference between jar and war in Java

What is the difference between a .jar and a .war file?
Is it only the file extension or is there something more?

Upvotes: 592

Views: 467762

Answers (15)

user9578753
user9578753

Reputation:

Also, using an embedded container, you can run a JAR file directly without setting up a web server like when running your java app with spring boot. However, for a WAR file, you need to set up a web server first, like Tomcat for example.

Upvotes: 1

Ajay Takur
Ajay Takur

Reputation: 6236

The jar is used to deploy on any Java runtime environment whereas war is allowed to deploy only on web servers.

Upvotes: -1

aioobe
aioobe

Reputation: 421280

From Java Tips: Difference between ear jar and war files:

These files are simply zipped files using the java jar tool. These files are created for different purposes. Here is the description of these files:

  • .jar files: The .jar files contain libraries, resources and accessories files like property files.

  • .war files: The war file contains the web application that can be deployed on any servlet/jsp container. The .war file contains jsp, html, javascript and other files necessary for the development of web applications.


Official Sun/Oracle descriptions:


Wikipedia articles:

Upvotes: 484

Abd Abughazaleh
Abd Abughazaleh

Reputation: 5565

War : For web-applications
Jar : For desktop applications

OR

War : Working on browser
Jar : Working on machine

Upvotes: 2

Animesh Jaiswal
Animesh Jaiswal

Reputation: 371

A JAR file extension is .jar and is created with jar command from command prompt (like javac command is executed). Generally, a JAR file contains Java related resources like libraries, classes etc.JAR file is like winzip file except that Jar files are platform independent.

A WAR file is simply a JAR file but contains only Web related Java files like Servlets, JSP, HTML.

To execute a WAR file, a Web server or Web container is required, for example, Tomcat or Weblogic or Websphere. To execute a JAR file, simple JDK is enough.

Upvotes: 10

Thermal IT
Thermal IT

Reputation: 11

Jar:- jar contain only .class war:- war contain html, js, css and .class also jsp and servlets pages

Upvotes: 1

Joby Wilson Mathews
Joby Wilson Mathews

Reputation: 11136

WAR stands for Web application ARchive

JAR stands for Java ARchive

enter image description here

Upvotes: 153

Akitha_MJ
Akitha_MJ

Reputation: 4294

War -

distribute Java-based web applications. A WAR has the same file structure as a JAR file, which is a single compressed file that contains multiple files bundled inside it.

Jar -

The .jar files contain libraries, resources and accessories files like property files.

WAR files are used to combine JSPs, servlets, Java class files, XML files, javascript libraries, JAR libraries, static web pages, and any other resources needed to run the application.

Upvotes: 1

Haim Sulam
Haim Sulam

Reputation: 324

.jar and .war are both zipped archived files. Both can have the optional META-INF/MANIFEST.MF manifest file which hold informative information like versioning, and instructional attributes like classpath and main-class for the JVM that will execute it.

.war file - Web Application Archive intended to be execute inside a 'Servlet Container' and may include other jar files (at WEB-INF/lib directory) compiled classes (at WEB-INF/classes (servlet goes there too)) .jsp files images, files etc. All WAR content that is there in order to create a self-contained module.

Upvotes: 13

Vincent Ramdhanie
Vincent Ramdhanie

Reputation: 103145

A war file is a special jar file that is used to package a web application to make it easy to deploy it on an application server. The content of the war file must follow a defined structure.

Upvotes: 14

justkt
justkt

Reputation: 14776

You add web components to a J2EE application in a package called a web application archive (WAR), which is a JAR similar to the package used for Java class libraries. A WAR usually contains other resources besides web components, including:

  • Server-side utility classes (database beans, shopping carts, and so on).
  • Static web resources (HTML, image, and sound files, and so on)
  • Client-side classes (applets and utility classes)

A WAR has a specific hierarchical directory structure. The top-level directory of a WAR is the document root of the application. The document root is where JSP pages, client-side classes and archives, and static web resources are stored.

(source)

So a .war is a .jar, but it contains web application components and is laid out according to a specific structure. A .war is designed to be deployed to a web application server such as Tomcat or Jetty or a Java EE server such as JBoss or Glassfish.

Upvotes: 49

fmucar
fmucar

Reputation: 14558

Basicly both compressed archives. war is used for web application with a specific directory structure.

Upvotes: 6

T.J. Crowder
T.J. Crowder

Reputation: 1075527

A .war file has a specific structure in terms of where certain files will be. Other than that, yes, it's just a .jar.

Upvotes: 105

Justin Niessner
Justin Niessner

Reputation: 245489

A .war file is a Web Application Archive which runs inside an application server while a .jar is Java Application Archive that runs a desktop application on a user's machine.

Upvotes: 24

nyanev
nyanev

Reputation: 11519

war and jar are archives for java files. war is web archive and they are running on web server. jar is java archive.

Upvotes: 9

Related Questions