简述
JAR 文件就是 Java Archive ( Java 档案文件),它是 Java 的一种文档格式。 JAR 文件非常类似 ZIP 文件。准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,多出了一个META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的 (也可以自行创建)。
命令参数
用法: jar {ctxui} [vfmn0PMe] [jar文件] [清单文件] [入口点] [-C目录]文件…
-c: 创建新档案
-t: 列出要归档的目录
-x: 从存档中提取命名(或所有)文件
-u: 更新现有档案
-v: 在标准输出上生成详细输出
-f: 指定归档文件名
-m: 包含来自指定清单文件的清单信息
-n: 在创建新存档后执行Pack200规范化
-e: 指定独立应用程序的应用程序入口点
-0: 只存储, 不使用ZIP压缩
-P: 从文件名保留前导的“/”(绝对路径)和“….”(父目录)组件
-M: 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
-i: 为指定的jar文件生成索引信息
-C: 表示转到指定目录下去执行这个jar命令的操作。它相当于先使用 cd 命令转该目录下再执行不带 -C 参数的 jar 命令,它只能在创建和更新 JAR 文件包的时候可用。
注意:
{ctxu},这四个参数必须选其一。
[v f m e 0 M i],这几个是可选参数。
解压操作
在jar包所在目录下,通过jar -xvf
解压当前jar包:
jar -xvf test.jar
压缩操作
(1)在当前文件目录下,替换我们所需要替换的文件,重新将当前解压的jar压缩:
jar -cvf0m test.jar ./META-INF/MANIFEST.MF .
(2)压缩jar包,不生成清单文件,不压缩:
jar -cvf0M test.jar BOOT-INF/ META-INF/ org/
更新操作
在不解压的情况下,更新jar包某个文件:
jar -uvf test.jar BOOT-INF/classes/application.yml