最核心、最常用的命令是 jar 命令本身,因为它不仅能打包,也能解包,你也可以使用通用的压缩工具,如 unzip 或 7z。

使用 jar 命令 (推荐)
jar 命令是 Java 开发工具包 自带的,专门用于处理 JAR 文件,它的用法类似于 tar 命令。
基本语法
jar xf <jar文件名>
x: 代表 eXtract(解压)。f: 代表 File(指定文件名),后面必须紧跟 JAR 文件的路径。
详细示例
假设你有一个名为 my-app.jar 的文件,你想将它解压到当前目录。
基本解压
jar xf my-app.jar
执行后,my-app.jar 中的所有文件和目录都会被解压到当前工作目录。

解压到指定目录
如果你想将 JAR 文件解压到一个特定的目录(unpacked_files),可以使用 -C 选项(-C 后面跟目标目录)。
# 先创建目标目录(如果不存在) mkdir unpacked_files # 解压到指定目录 jar xf my-app.jar -C unpacked_files
查看 JAR 文件内容而不解压
如果你想先看看 JAR 文件里有什么,可以使用 t (list table of contents) 选项。

jar tf my-app.jar
输出会列出 JAR 文件中的所有文件和目录,类似于 tar -t。
只解压特定文件
如果你想只解压 JAR 文件中的某一个或几个文件,可以在命令末尾指定文件名。
# 只解压 META-INF/MANIFEST.MF 文件 jar xf my-app.jar META-INF/MANIFEST.MF # 只解压 com/example/Main.class 文件 jar xf my-app.jar com/example/Main.class
显示解压过程
如果你想在解压时看到正在处理的文件,可以添加 v (verbose) 选项。
jar xvf my-app.jar
处理带依赖的 JAR (可执行 JAR)
对于包含第三方依赖的可执行 JAR(通常使用 Maven/Gradle 打包),其结构可能比较复杂,依赖可能被打包在 BOOT-INF/lib 目录下,直接解压这样的 JAR 文件后,你可能无法直接运行解压出来的主类。
这种情况下,最简单的方法是使用构建工具(如 Maven 或 Gradle)提供的特定插件来解压,或者使用像 jar 或 unzip 这样的工具直接解压,然后手动处理类路径。
使用通用解压工具 (如 unzip)
在很多 Linux/Unix 系统中,unzip 是一个非常流行的解压工具,因为 JAR 文件本质上就是 ZIP 格式的压缩包,unzip 完全可以处理它。
基本语法
unzip <jar文件名>
详细示例
基本解压
unzip my-app.jar
这会将 my-app.jar 的内容解压到当前目录,并创建一个与 JAR 文件名同名的目录(my-app),然后内容解压到这个子目录中。
解压到指定目录
使用 -d 选项来指定目标目录。
unzip my-app.jar -d unpacked_files
而不解压
使用 -l (list) 选项。
unzip -l my-app.jar
只解压特定文件
使用 unzip 的文件通配功能。
# 只解压所有 .class 文件 unzip my-app.jar "*.class" # 只解压特定目录下的文件 unzip my-app.jar "META-INF/*"
使用图形界面工具
如果你不习惯命令行,几乎所有操作系统都提供图形化的解压工具:
- Windows: 右键点击 JAR 文件,选择 "全部解压..." (Extract All...)。
- macOS: 双击 JAR 文件,它会像普通文件夹一样在 Finder 中打开,你可以直接将内容拖拽出来。
- Linux (GNOME/KDE): 右键点击 JAR 文件,通常会有 "提取到..." (Extract to...) 的选项。
总结与对比
| 特性 | jar 命令 |
unzip 命令 |
图形界面工具 |
|---|---|---|---|
| 适用场景 | Java 开发环境,需要处理清单文件等 Java 特性 | 通用解压,几乎所有系统都支持 | 不熟悉命令行的用户 |
| 优点 | Java 原生,功能强大,能更好地处理 JAR 的特殊结构(如清单文件) | 命令通用,参数灵活,在非 Java 环境下也能用 | 直观,简单,无需记忆命令 |
| 缺点 | 需要安装 JDK | 不了解 JAR 的特殊结构 | 功能相对单一,自动化程度低 |
| 命令示例 | jar xf my-app.jar |
unzip my-app.jar -d dir |
右键点击 -> 解压 |
- 如果你正在开发 Java 程序,或者想使用最“正宗”的方式,请使用
jar命令。 - 如果你只是想快速解压一个 JAR 文件查看内容,并且你的系统有
unzip,使用unzip非常方便。 - 如果你不想打字,直接用图形界面工具。
