Java战争与jar – 有什么区别?
.jar
和.war
文件有什么区别? 它只是文件的扩展名还是有更多的东西?
从Java技巧:耳瓶和战争文件之间的区别 :
这些文件是使用java jar工具的简单压缩文件。 这些文件是为不同的目的而创build的。 这是这些文件的描述:
.jar文件: .jar文件包含库,资源和附件文件,如属性文件。
.war文件: war文件包含可以部署在任何servlet / jsp容器上的Web应用程序 。 .war文件包含开发Web应用程序所需的jsp,html,javascript和其他文件。
官方Sun / Oracle说明:
- J2EETM教程: Web应用程序档案
- Java档案(JAR)文件格式: 基础
维基百科文章:
- WAR文件格式(Sun)
- JAR文件
.war
文件根据某些文件的具体位置而定。 除此之外,是的,这只是一个.jar
。
将Web组件添加到称为Web应用程序归档(WAR)的包中的J2EE应用程序中,该包是一个类似于用于Java类库的包的JAR。 WAR通常包含除Web组件之外的其他资源,其中包括:
- 服务器端实用程序类(数据库bean,购物车等)。
- 静态网页资源(HTML,图像和声音文件等)
- 客户端类(小程序和实用程序类)
WAR具有特定的分层目录结构。 WAR的顶级目录是应用程序的文档根目录。 文档根目录是JSP页面,客户端类和存档以及静态Web资源的存储位置。
( 来源 )
所以.war是一个.jar,但它包含Web应用程序组件,并根据特定的结构进行布局。 .war旨在被部署到Web应用程序服务器(如Tomcat或Jetty)或Java EE服务器(如JBoss或Glassfish)。
JAR和WAR之间的主要区别在于JAR并不是一个单一的目的格式,而WAR则是。 有了JAR文件,你可以打包很多不同的东西。 通常你打包Java类,但是你可以把任何东西都放到一个JAR文件中,并且你可以创build你想要的任何文件和目录格式的JAR文件。 例如,Oracle(至less在8.1.x)实际上使用JAR文件在安装CD上分发Oracle软件,IBM使用这些文件分发WebSphere的文档的可安装版本。 从技术上讲,您可以将JSP页面,HTML页面,servlet类等放在JAR中,但通常不会 – 您使用WAR。
WAR文件是具有特定格式的JAR文件。 这个格式是在servlet规范中定义的(你可以在java.sun.com网站上查看)。 本质上,WAR文件是具有特定目录和特定文件的Web应用程序的标准格式。 这包括一个WEB-INF目录,一个用于描述应用程序的WEB-INF / web.xml文件,一个应用程序使用的JAR文件的WEB-INF / lib目录,以及一个用于类文件的WEB-INF / classes目录不在JAR中分发。 您也可以将页面(JSP和HTML)放入WAR中。 然后,您可以将应用程序作为一个文件分发,而不是作为图像,HTML页面和Java类的集合。
.war
文件是在应用程序服务器内运行的Web应用程序归档文件,而.jar
是在应用程序服务器上运行桌面应用程序的Java应用程序归档文件。
war文件是一个特殊的jar文件,用于打包一个web应用程序,以便将其部署到应用程序服务器上。 战争文件的内容必须遵循定义的结构。
.jar和.war都是压缩的归档文件。 两者都可以有可选的META-INF / MANIFEST.MF清单文件,其中包含版本信息等信息,以及执行它的JVM的classpath和main-class等指令属性。
.war文件 – 在“Servlet容器”中执行的Web应用程序归档文件,可以包含其他jar文件(在WEB-INF / lib目录中)编译后的类(在WEB-INF / classes(servlet也在那里)).jsp文件图像,文件等所有的WAR内容,以创build一个独立的模块。
基本上都是压缩档案。 战争用于具有特定目录结构的Web应用程序。
EAR
是企业应用程序归档文件,可能包含ejb JAR文件,WAR文件和RAR(连接器)文件。 它们也可能包含第三方库 – 但是您必须知道如何操作Java扩展工具(例如MANIFEST.MF Class-Path指令)以使其正常工作。
WAR
是一个Web应用程序存档,包含JSP,“正常”的HTTP服务文件(HTML,图像等),servlet,标签库。
JAR
是“普通的”Java应用程序归档文件,但在这种情况下,它通常包含EJB而不是代码库或可运行(例如从应用程序容器之外)的应用程序。
战争和jar是Java文件的档案。 战争是networking存档,他们在networking服务器上运行。 jar是java的档案。
Jar文件(扩展名为.jar的文件)用于保存Java类,资源,辅助文件等的通用库。War文件(扩展名为.war的文件)旨在包含完整的Web应用程序。 在这种情况下,Web应用程序被定义为一组文件,类,资源,.jar文件,可以打包并作为一个servlet上下文进行访问。