一、文件扩展名不同
jar包扩展名为.jar,war包扩展名为.war。
二、目的和运作方式不同
jar包是类的归档文件,jar文件格式以流行的zip文件格式为基础。jar文件允许我们打包多个文件,以便将其用作库、插件或任何类型的应用程序。
war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为一个web项目,里面是项目的所有东西。
三、文件的结构不同
jar包里的com里放的就是class文件,配置文件,但是没有静态资源的文件,大多数 JAR 文件包含一个META-INF目录,它用于存储包和扩展的配置数据,如安全性和版本信息。
war包和项目的文件结构保持一致。war包里的WEB-INF里放的class文件和配置文件,META-INF和jar包作用一样,war包里还包含静态资源的文件。
四、建立的条件不同
需要建立正确的Web应用程序的目录层次结构。
建立WEB-INF子目录,并在该目录下建立classes与lib两个子目录。
将Servlet类文件放到WEB-INF\classes目录下,将Web应用程序所使用Java类库文件(即JAR文件)放到WEB-INF\lib目录下。
将JSP页面或静态HTML页面放到上下文根路径下或其子目录下。
建立META-INF目录,并在该目录下建立context.xml文件。
总结
jar包和war包的区别主要体现在文件扩展名、目的和运作方式、文件结构这几个方面。jar包扩展名为.jar,war包扩展名为.war;jar包可打包多个文件,以便用于库、插件或任何类型的应用程序,war包仅用于web应用程序,即web项目;jar包里没有静态资源的文件,war包里有。