Jar包与war包的介绍与区别
1、Jar包的介绍
Jar(Java Archive,Java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。
Jar文件格式以流行的ZIP文件格式为基础。但是与ZIP文件不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可以被像编译器和JVM这样的工具直接使用。在Jar中包含特殊的文件,如manifests和部署描述符,用来知识工具如何处理特定的Jar。
manifest元素 是一种XML文件中的顶层元素,使用抢文件名的形式来标识项目中的程序清单
简单来说,Jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些Jar包引入到自己的项目中去,可以直接使用Jar包中的类和属性,这些Jar包一般存放在lib目录下
2、War包的介绍
War是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中去。以Tomcat来说,将War包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。
War包是Sun提出的一种web应用程序格式,与Jar类似,是很多文件的压缩包。War包中的文件按照一定目录结构来组织。根据其根目录下包含有html和jsp文件,或者包含有两种文件的目录,另外还有WEB-INF目录。通常在WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录表则包含编译好的servlet类和jsp,或者servlet所以来的其他类(如JavaBean)。通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。
简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。
3、Jar与War的区别
War文件代表了一个Web应用程序,Jar是类的归档文件
如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,这时可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。
一个War文件就是一个Web应用程序,建立War文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,制定一个.war扩展名。
要注意的是,虽然WAR文件和JAR文件的文件格式是一样的,并且都是使用jar命令来创建,但就其应用来说,WAR文件和JAR文件是有根本区别的。
- JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,
- 一个WAR文件代表了一个Web应用程序,它可以包含 Servlet、HTML页面、Java类、图像文件,以及组成Web应用程序的其他资源,而不仅仅是类的归档文件。
那么什么时候应该使用WAR文件呢?在开发阶段不适合使用WAR文件,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立WAR文件将是一件浪费时间的事情。在产品发布阶段,使用WAR文件是比较合适的,因为在这个时候,几乎不需要再做什么改动了。
在开发阶段,我们通常将Servlet源文件放到Web应用程序目录的src子目录下,以便和Web资源文件区分。在建立WAR文件时,只需要将src目录从Web应用程序目录中移走,就可以打包了。
4、部署war包到Tomcat
- 将程序打包为一个test.war包;
- 打开Tomcat的安装路径,然后进入到其中的webapps文件夹中,把test.war放在webapps文件夹下;
- 启动Tomcat。
如果不需要更改配置文件:到这一步就可以了。
在浏览器输入“http:localhost:tomcat_port/test即可打开test项目的 index.jsp页面(port是自己的端口号)。如果test项目没有index.jsp页面,那就需要打开其他相应的页面。
如果需要更改配置文件:
- 关闭 Tomcat。
- 删除 test.war文件(如果在tomcat启动的状态下删去war包,解压好的文件夹也会被一并删除,所以需要在解压后停止tomcat, 然后删掉war包,这时再启动。项目文件夹就会被认为不是war解压而来。)。
- 由于刚刚启动过Tomcat,Tomcat会自动解压缩test.war为 test文件夹。所以我们在webapps下面可以看到test文件夹。打开test文件夹更改配置文件即可。
- 更新完配置之后,启动Tomcat。
- 浏览器打开即可。