花5分钟过一遍jar包和war包的区别(概念,目录,使用和部署)

Spring Boot 项目打包

做Java开发,jar包和war包接触的都比较多。

今天,小编把两者的联系好好梳理下,花5分钟过一遍以后不再迷茫,你值得拥有:

一、概念

1. jar包:jar包是类的归档文件,与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。JAR 文件格式以流行的 ZIP 文件格式为基础。但与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用;

简单来说,jar包就是别人已经写好的一些类,然后对这些类进行打包。可以将这些jar包引入到你的项目中,可以直接使用这些jar包中的类和属性,这些jar包一般放在BOOT-INF文件夹的lib目录下。

2. war包:war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。

简单来说,war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器中。以Tomcat来讲,将war包放置在其\webapps\目录下,然后启动Tomcat,这个包就会自动解压,就相当于发布了。

二、目录结构

  1. jar包里的com里放的就是class文件,配置文件,但是没有静态资源的文件(index.jsp),大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息;
  2. war包中的文件按照一定目录结构来组织,和项目的文件结构保持一致。其根目录下包含有html和jsp文件,或者包含有这两种文件的目录。(META-INF和jar包作用一样)WEB-INF目录下含有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的servlet类和jsp,或者servlet所依赖的其他类(如JavaBean),通常这些所依赖的类也可以打包成jar包放在WEB-INF下的lib目录下。

三、根本区别

WAR文件代表了一个Web应用程序,把WAR文件作为部署单元来使用,而JAR是类的归档文件。

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

四、使用场景

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

五、部署项目

(篇幅原因,打包方法不介绍了,相关博客很多,大家可以自行百度)

  • 部署普通的Spring项目用“war”包就可以,下面展示war包部署在Tomcat中运行方法:
  1. 首先需要在虚拟机安装一个Tomcat;
  2. 将编译器打好的war包复制到Tomcat下的webapps的文件夹内;
  3. 在Tomcat的bin目录下,运行 ./startup.bat ,启动Tomcat,就相当于发布了项目。
  • 部署SpringBoot项目用“jar”包就可以,因为SpringBoot内置tomcat,下面展示jar包部署方法:(我的jar包名称为myjob.jar)
  1. 查看进程:ps -ef | grep myjob.jar;
  2. 杀死进程:kill -9 进程号;
  3. 移除旧的jar包,将新的jar包复制进目录(通常放在/home目录下);
  4. 启动程序:nohup java -jar myjob.jar &;
  5. 实时查看日志:tail -1000f nohup.out。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值