文章摘要: 创建和管理 Java 存档 (JAR) 文件。
简介
- 基于 ZIP 和 ZLIB 压缩格式的通用存档和压缩工具。
- 用于将 Java 小程序或应用程序打包到单个存档中。
- 当 applet 或应用程序的组件(文件、图像和声音)组合到单个存档中时,它们可以由 Java 代理(例如浏览器)在单个 HTTP 事务中下载,而不需要为每个部分建立新连接。这大大缩短了下载时间。
- 可以压缩文件,从而进一步缩短下载时间。
- 允许 applet 作者对文件中的各个条目进行签名,以便可以验证其来源。
- JAR 文件可以用作类路径条目,无论它是否经过压缩。
注释
jar 命令的语法类似于 tar 命令的语法。它有几种操作模式,由其中一个 mandatory operation 参数_定义。其他参数是修改操作行为_的选项,或者是执行操作所需的_操作数_。
格式
提示
jar c[efmMnv0] [entrypoint] [<jarfile>] [manifest] [-C <dir>] <file> ... [-J<option> ...] [@arg-file ...]:创建JAR文件。
jar u[efmMnv0] [entrypoint] [<jarfile>] [manifest] [-C <dir>] <file> ... [-J<option> ...] [@arg-file ...]:更新JAR文件。
jar x[vf] [<jarfile>] <file> ... [-J<option> ...] [@arg-file ...]:提取JAR文件。
jar t[vf] [<jarfile>] <file> ... [-J<option> ...] [@arg-file ...]:列出JAR文件的内容。
jar i <jarfile> [-J<option> ...] [@arg-file ...]:向JAR文件添加索引。
操作选项
c:创建新的 JAR 存档。i:生成 JAR 存档的索引信息。t:列出 JAR 存档的内容。u:更新 JAR 存档。x:从 JAR 存档中提取文件。
option选项
-e: 指定入口点类,用于创建可执行的 JAR 文件。-f: 指定 JAR 文件的名称。-m: 包含指定的 manifest 文件中的属性。-M: 创建或更新 JAR 文件时不自动生成 manifest 文件。-n: 归档规范化,确保 pack200 压缩/解压缩后签名有效。-v: 生成详细输出。-0: 创建或更新 JAR 文件时不使用 ZIP 压缩。-C: 在处理文件之前更改目录。
参数
file: 指定要添加到 JAR 文件中的文件或目录。entrypoint: 指定 JAR 文件的入口点类。jarfile: 指定 JAR 文件的名称。manifest: 指定包含属性的 manifest 文件。
案例
# 创建 JAR 文件
# 将创建一个名为 `myapp.jar` 的 JAR 文件,包含当前目录下的所有 `.class` 文件
jar cf myapp.jar *.class
# 创建可执行的 JAR 文件
# 将创建一个名为 `myapp.jar` 的可执行 JAR 文件,其中 `com.example.Main` 是入口点类
jar cfe myapp.jar com.example.Main com/example/Main.class
# 更新 JAR 文件
# 将更新 `myapp.jar` 文件,添加 `newfiles` 目录下的所有文件
jar uf myapp.jar -C newfiles .
# 列出 JAR 文件内容
# 将列出 `myapp.jar` 文件中的所有文件
jar tf myapp.jar
# 提取 JAR 文件
# 将从 `myapp.jar` 文件中提取所有文件
jar xf myapp.jar
# 为 JAR 文件添加索引
# 将为 `myapp.jar` 文件添加索引信息,以便于快速访问
jar i myapp.jar
# 使用 manifest 文件
# 将创建一个名为 myapp.jar 的 JAR 文件,并包含 manifest.mf 文件中的 manifest 信息
jar cmf manifest.mf myapp.jar *.class