jar包和war的区别

1、war是一个web模块,其中必须包括WEB-INF,是可以直接运行的web项目。

      jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运行的。

2、javaSE程序是可以打包成jar包(J可以理解为java)。而javaWeb程序是可以打包成war包(W可以理解为web),然后把war发布到tomcat的webapps下目录下,tomcat在启动时会自动解压war包。

3、jar(JavaArchive,Java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。为J2EE应用程序创建的jar文件是ear文件(企业级jar文件)。

4、一个WAR文件就是一个web应用程序,    建立WAR文件,就是建立整个web程序(不包括web应用程序层级结构的根目录)压缩起来,指定一个.war扩展名。

5、war文件和jar文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,war文件和jar文件是有根本区别的。jar文件的目的是把类和相关的资源封装到压缩的归档文件中,而对于war文件来说,一个war文件代表一个web应用程序,它可以包含Servlet、html页面、java类、图像文件,以及组成web应用程序的其他资源,而不仅仅是一个归档文件。

6、Jar文件(扩展名.Jar Jave Application Archive)包括Java类普通类、资源(resource)、辅助文件(auxiliary files)等;

war文件(扩展名为.War,Web Application Archive)包含全部Web应用程序。在这种情形下,一个Web应用程序被定义为单独的一组文件、类和资源,用户可以对jar文件进行封装,并把它作为小型服务程序(servlet)来访问。

ear文件(扩展名为.Ear,Enterprise Application Archive)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。

  每一种文件(.jar, .war, .ear)只能由应用服务器(application servers)、小型服务程序容器(servlet containers)、EJB容器(EJB containers)等进行处理。

WAR的使用:

如果想生成war文件:可以使用如下命令:jar -cvf web1.war *

如果想查看web1.war中都有哪些文件,可以使用命令:jar -tf web1.war

如果想直接解压web1.war文件,可以使用命令:jar -xvf web1.war

另外,也可使用winrar软件选择zip压缩方式,并将压缩文件后缀名改为war即可压缩生成war文件;同样使用winrar软件可以强行打开war文件,或者强行解压war文件

使用jar命令与winrar软件的区别在于前者在压缩文件的同时会生成MetaINF文件夹,内包含MANIFEST.MF文件。

 

总结:

         何时使用war或者jar文件:当你的项目在没有完全竣工的时候,不适合使用war文件,因为你的类会由于调试之类的经常改,这样来回删除、创建war文件很不爽,最好是你的项目已经完成了,不改了,那么就打个war包吧,这个时候一个war文件就相当于一个web应用程序鸟;而jar文件就是把类和一些相关的资源封装到一个包中,便于程序中引用。


猜你喜欢

转载自blog.csdn.net/qq_41651465/article/details/80014692