Java 打包详解:使用 jar 命令创建与管理 JAR 文件
JAR(Java Archive)文件是 Java 平台中用于打包类、资源和元数据的归档格式,可用于分发库、应用程序或组件。jar 命令是 JDK 自带的打包工具,支持创建、查看、更新和提取 JAR 文件。本文将详细讲解 jar 命令的用法、参数含义及实战示例,帮助你熟练掌握 Java 打包技巧。
jar 命令基本语法
jar 命令的通用格式如下:
1 | jar {操作选项}[参数] [JAR文件名] [清单文件] [入口类] [-C 目录] 文件... |
核心操作选项(必选其一)
| 选项 | 功能描述 |
|---|---|
-c |
创建新的 JAR 文件(若文件已存在,会覆盖)。 |
-t |
列出 JAR 文件中的内容(目录和文件列表)。 |
-x |
从 JAR 文件中提取指定文件(不指定则提取所有文件)。 |
-u |
更新现有 JAR 文件(添加新文件或替换已有文件)。 |
-i |
为 JAR 文件生成索引信息(加速类加载)。 |
辅助参数(可选)
| 选项 | 功能描述 |
|---|---|
-v |
生成详细输出(显示打包 / 提取的文件列表及进度)。 |
-f |
指定 JAR 文件名(必须紧跟文件名,如 -f app.jar)。 |
-m |
合并指定的清单文件(MANIFEST.MF)到 JAR 中(需指定清单文件路径)。 |
-e |
指定可执行 JAR 的入口类(主类,包含 main 方法)。 |
-0 |
仅存储文件,不压缩(适合已压缩的资源,如图片、ZIP)。 |
-M |
不自动生成清单文件(默认会生成基础清单)。 |
-C |
切换到指定目录,再包含后续文件(用于打包其他目录的文件,保持目录结构)。 |
-P |
保留文件的绝对路径或父目录信息(不推荐,可能导致路径混乱)。 |
jar 命令实战示例
创建 JAR 文件
(1)基本打包(含类文件)
将当前目录下的 Foo.class 和 Bar.class 打包为 classes.jar: