java打包之jar和war为何出现又有什么区别

jar为什么诞生

  1. java工程有大量文件,在部署的时候需要向服务器上传大量文件,如果有了jar的话,只需上传一个jar包就行。
  2. 在早期Web浏览器必须重复多次请求Web服务器,以便下载完构成一个“程序片”(Applet)的所有文件;但在将所有这些文件合并到一个JAR文件里以后,只需向远程服务器发出一次请求即可。
  3. 如果我们依赖别人的项目的话,就要将别人的class文件一个一个复制过来放到我们引用路径下,如果有了jar,一个项目就是一个jar我们只需依赖别人的jar就行。
  4. 如果引用的项目进行了更新,我们要对比每个文件,进行替换。如果有了jar只需替换一个jar。
  5. jar压缩作用,减小体积
  6. jar包可以做混淆加密,防止反编译

如何打jar包

用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项:
    -c  创建新档案
    -t  列出档案目录
    -x  从档案中提取指定的 (或所有) 文件
    -u  更新现有档案
    -v  在标准输出中生成详细输出
    -f  指定档案文件名
    -m  包含指定清单文件中的清单信息
    -n  创建新档案后执行 Pack200 规范化
    -e  为捆绑到可执行 jar 文件的独立应用程序
        指定应用程序入口点
    -0  仅存储; 不使用任何 ZIP 压缩
    -P  保留文件名中的前导 '/' (绝对路径)".." (父目录) 组件
    -M  不创建条目的清单文件
    -i  为指定的 jar 文件生成索引信息
    -C  更改为指定的目录并包含以下文件
如果任何文件为目录, 则对其进行递归处理。
清单文件名, 档案文件名和入口点名称的指定顺序
与 'm', 'f''e' 标记的指定顺序相同。

示例 1: 将两个类文件归档到一个名为 classes.jar 的档案中: 
       jar cvf classes.jar Foo.class Bar.class 
示例 2: 使用现有的清单文件 'mymanifest' 并
           将 foo/ 目录中的所有文件归档到 'classes.jar' 中: 
       jar cvfm classes.jar mymanifest -C foo/ .

war为什么诞生

war包诞生于javaEE出现的年代,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包

与打jar包一样都是用jar命令,只不过打war包的话,打包之前就要将要打包的目录结构与web程序的的目录结构保持一致

jar与war有什么区别

  • jar与war的目录结构不同,本质上都是压缩文件也都是使用jar命令生成
  • jar是类的归档文件;war是Web 归档文件也是一个web 应用程序
  • tomcat是按照javaEE规范开发的web应用服务器,javaEE规范是sun公司制定的企业级应用规范,同时sun也制定了web 应用程序格式war,tomcat也只支持部署war不支持部署jar

jar与war的种类(进阶)

在这里插入图片描述

jar与war也分为skinny、thin、fat几类
jar有skinny、thin、fat
war有skinny、thin
skinny:只有我们自己写的代码或者配置文件
thin:不止有skinny里包含的内容,还包含依赖包
fat:包含在thin里还包含了内嵌的web服务器,即这个fat jar自身不需要依赖其他文件就可以自己运行。包含web运行环境和web应用及依赖

参考资料

  1. https://blog.csdn.net/Azoner/article/details/123954904
  2. https://m.w3cschool.cn/article/24070619.html
  3. https://www.jianshu.com/p/0c22592f5378
  4. https://www.jianshu.com/p/ddc0d5e37a07
  5. https://blog.csdn.net/qq_40761462/article/details/122952309
  6. https://dzone.com/articles/the-skinny-on-fat-thin-hollow-and-uber
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值