jar包和war包的介绍和区别

简介: JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了)。然后把war发布到Tomcat的webapps目录下,Tomcat会在启动时自动解压war包。

JavaSE程序可以打包成Jar包(J其实可以理解为Java了),而JavaWeb程序可以打包成war包(w其实可以理解为Web了)。然后把war发布到Tomcat的webapps目录下,Tomcat会在启动时自动解压war包。

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

JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR。

 

如果一个Web应用程序的目录和文件非常多,那么将这个Web应用程序部署到另一台机器上,就不是很方便了,我们可以将Web应用程序打包成Web 归档(WAR)文件,这个过程和把Java类文件打包成JAR文件的过程类似。利用WAR文件,可以把Servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构来进行部署了,而是把WAR文件作为部署单元来使用。

一个WAR文件就是一个Web应用程序,建立WAR文件,就是把整个Web应用程序(不包括Web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。下面我们将第2章的Web应用程序打包成WAR文件,然后发布

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

我们什么时候应该使用WAR文件呢?在开发阶段不适合使用WAR文件,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新 Servlet类文件,而每一次改动后,重新建立WAR文件将是一件浪费时间的事情。在产品发布阶段,使用WAR文件是比较合适的,因为在这个时候,几乎不需要再做什么改动了。

在开发阶段,我们通常将Servlet源文件放到Web应用程序目录的src子目录下,以便和Web资源文件区分。在建立WAR文件时,只需要将src目录从Web应用程序目录中移走,就可以打包了

目录
相关文章
|
3月前
|
SQL 前端开发 Java
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
这篇文章介绍了如何在IntelliJ IDEA中使用Maven将Spring Boot项目打包成可运行的jar包,并提供了运行jar包的方法。同时,还讨论了如何解决jar包冲突问题,并提供了在IDEA中同时启动Vue前端项目和Spring Boot后端项目的步骤。
在IDEA中使用Maven将SpringBoot项目打成jar包、同时运行打成的jar包(前后端项目分离)
|
XML Java Maven
Maven解决创建war包为什么报错
Maven解决创建war包为什么报错
107 1
|
Java Maven
jar包
jar包
165 0
jar包
|
JSON Java Maven
普通maven项目打成jar包+启动时传输数据给jar包主类
普通maven项目打成jar包+启动时传输数据给jar包主类
112 0
|
Java 应用服务中间件 Linux
练习将maven项目打成war包放在linux服务器中,进行访问
第一次使用云服务器,练习将maven项目打成war包放在linux服务器中,进行访问。 这是阿里云的投稿活动,经过自己的尝试对阿里云服务器使用更加熟悉,阿里云使用方便,对学生也十分良心~让我学到了一些服务器的知识,祝阿里云团队蒸蒸日上~
412 0
练习将maven项目打成war包放在linux服务器中,进行访问
|
Java Android开发
将引用了第三方jar包的Java项目打包成jar文件
将引用了第三方jar包的Java项目打包成jar文件
305 0
|
Java Maven
Assemby 打包并启动jar包
Assemby 打包并启动jar包
202 0
Assemby 打包并启动jar包
|
Java 应用服务中间件 Maven
【Maven】项目打包-war包-Jar包[IDEA将项目打成war包]
【Maven】项目打包-war包-Jar包[IDEA将项目打成war包]
671 0
【Maven】项目打包-war包-Jar包[IDEA将项目打成war包]
|
存储 Java 编译器
jar包和war包的区别
jar包和war包的区别
|
Web App开发 Java 应用服务中间件
jar包和war包的介绍与区别
jar包和war包都可以看成压缩文件,都可以用解压软件打开,jar包和war包都是为了项目的部署和发布,通常在打包部署的时候,会在里面加上部署的相关信息。
8354 0