Java中jar和war的区别

.jar.war文件之间有什么区别?< br > 仅仅是文件扩展名还是还有其他的东西?< / p >
415716 次浏览

War和jar是Java文件的存档。战争是网络档案,他们运行在网络服务器上。Jar是Java归档文件。

.war文件是运行在应用服务器内部的Web应用程序归档文件,而.jar文件是在用户机器上运行桌面应用程序的Java应用程序归档文件。

# EYZ0文件在特定文件的位置方面具有特定的结构。除此之外,是的,它只是一个.jar

From Java提示:ear jar和war文件之间的差异:

这些文件只是压缩文件 使用Java jar工具。这些文件是 为了不同的目的而创造。在这里 这些文件的描述是:

  • . jar文件: .jar文件包含 图书馆、资源和 附件文件像属性文件

  • . war文件: war文件包含 web应用程序即可以 部署在任何servlet/jsp上 容器。.war文件包含jsp, Html, javascript等文件 这是网络发展所必需的 应用。< / p >


Sun/Oracle官方描述:


维基百科:

基本上都是压缩档案。War用于具有特定目录结构的web应用程序。

将web组件添加到一个名为web应用程序存档(WAR)的包中,WAR是一个JAR,类似于用于Java类库的包。WAR通常包含除了web组件之外的其他资源,包括:

  • 服务器端实用工具类(数据库bean、购物车等等)。
  • 静态web资源(HTML、图像和声音文件等)
  • 客户端类(applet和实用程序类)

WAR具有特定的层次目录结构。WAR的顶级目录是应用程序的文档根目录。文档根目录是存储JSP页面、客户端类和存档以及静态web资源的地方。

(# EYZ0)

所以。war是一个。jar,但它包含web应用程序组件,并根据特定的结构进行布局。.war被设计为部署到web应用服务器(如Tomcat或Jetty)或Java EE服务器(如JBoss或Glassfish)。

war文件是一个特殊的jar文件,用于打包web应用程序,使其易于部署到应用服务器上。war文件的内容必须遵循已定义的结构。

.jar和.war都是压缩归档文件。 两者都可以有可选的META-INF/MANIFEST。MF manifest文件,其中包含信息信息,如版本控制,以及指令属性,如类路径和执行它的JVM的主类 < p >。war文件- Web应用程序归档文件打算在一个“Servlet容器”中执行,可能包括其他jar文件(在Web - inf /lib目录)编译类(在Web - inf /classes (Servlet也在那里)).jsp文件图像,文件等。 为了创建一个自包含的模块而存在的所有WAR内容

战争——

分发基于java的web应用程序。WAR具有相同的文件 结构作为JAR文件,这是一个单独的压缩文件

.包含多个文件

Jar——

jar文件包含库、资源和附件文件

WAR文件用于组合jsp、servlet、Java类文件和XML 文件,javascript库,JAR库,静态网页等等

.运行应用程序所需的其他资源

战争代表Web应用程序存档

JAR代表Java ARchive

enter image description here

Jar: jar只包含.class War :- War包含html, js, CSS和.class以及JSP和servlet页面

JAR文件允许打包多个文件,以便将其用作库、插件或任何类型的应用程序。另一方面,WAR文件仅用于web应用程序。

可以使用任何所需的结构创建JAR。相反,WAR具有预定义的WEB-INF和META-INF目录结构。

JAR文件允许Java运行时环境(JRE)在一个请求中部署整个应用程序,包括类和相关资源。另一方面,WAR文件允许轻松地测试和部署web应用程序。

JAR文件扩展名为. JAR,是用JAR命令从命令提示符创建的(就像执行javac命令一样)。一般来说,JAR文件包含与Java相关的资源,如库、类等。JAR文件与winzip文件类似,只是JAR文件与平台无关。

WAR文件只是一个JAR文件,但只包含与Web相关的Java文件,如servlet、JSP、HTML。

要执行WAR文件,需要Web服务器或Web容器,例如Tomcat或Weblogic或Websphere。要执行JAR文件,简单的JDK就足够了。

战争:用于web应用程序
Jar:用于桌面应用

战争:在浏览器上工作
Jar: Working on machine

此外,使用嵌入式容器,你可以直接运行JAR文件,设置web服务器,就像用spring引导运行java应用程序一样。但是,对于战争文件,您需要首先设置一个web服务器,例如Tomcat。

罐子包装::

简单地说,JAR(或Java Archive)是一种包文件格式。JAR文件扩展名为. JAR,可能包含库、资源和元数据文件。

本质上,它是一个压缩文件,包含压缩版的.class文件和已编译Java库和应用程序的资源。

例如,这是一个简单的JAR文件结构:

< p > meta - inf / 清单。曼氏金融 com/ baeldung / MyApplication.class meta - inf / MANIFEST。MF文件可能包含关于存储在存档中的文件的附加元数据

我们可以使用JAR命令或Maven之类的工具创建JAR文件。

战争包装::

WAR代表Web应用程序存档或Web应用程序资源。这些归档文件具有.war扩展名,用于打包可以部署在任何Servlet/JSP容器上的web应用程序。

下面是一个典型WAR文件结构的布局示例:

< p > meta - inf / 清单。曼氏金融 web - inf / web . xml jsp / helloWorld.jsp 类/ 静态/ 模板/ application.properties lib / // *.jar文件作为lib 在内部,它有一个包含MANIFEST中有用信息的META-INF目录。关于MF的网络档案。META-INF目录是私有的,不能从外部访问

另一方面,它还包含web - inf公共目录,其中包含所有静态web资源,包括HTML页面、图像和JS文件。此外,它还包含web.xml文件、servlet类和库。

我们可以使用构建JAR时使用的相同工具和命令来构建.war存档。

[3]差异:

第一个也是最明显的区别是文件扩展名。jar文件的扩展名是.jar,而WAR文件的扩展名是. WAR。

第二个主要区别是它们的目的和运作方式。JAR文件允许我们打包多个文件,以便将其用作库、插件或任何类型的应用程序。另一方面,WAR文件仅用于web应用程序。

档案的结构也不同。我们可以用任何想要的结构创建JAR。相反,WAR具有预定义的WEB-INF和META-INF目录结构。

最后,如果我们将JAR构建为可执行JAR而不使用其他软件,那么我们就可以从命令行运行JAR。或者,我们可以把它用作图书馆。相反,我们需要一个服务器来执行WAR。