花5分钟过一遍jar包和war包的区别(概念,目录,使用和部署),以后都不会再迷茫

您所在的位置:网站首页 wapnet有什么区别 花5分钟过一遍jar包和war包的区别(概念,目录,使用和部署),以后都不会再迷茫

花5分钟过一遍jar包和war包的区别(概念,目录,使用和部署),以后都不会再迷茫

2024-07-11 02:53| 来源: 网络整理| 查看: 265

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,这个包就会自动解压,就相当于发布了。

二、目录结构

jar包里的com里放的就是class文件,配置文件,但是没有静态资源的文件(index.jsp),大多数 JAR 文件包含一个 META-INF 目录,它用于存储包和扩展的配置数据,如安全性和版本信息;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应用程序的其他资源,而不仅仅是类的归档文件。

四、使用场景

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

五、部署项目

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

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

 

少侠请留步 ... ヾ(◍°∇°◍)ノ゙ ... 欢迎点赞、评论、加关注,让更多人看到学到赚到更多精彩,请关注我的"今日头条号":Java云笔记

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3