菜鸟科技网

jar解包命令具体该怎么用?

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

jar解包命令具体该怎么用?-图1
(图片来源网络,侵删)

使用 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解包命令具体该怎么用?-图2
(图片来源网络,侵删)

解压到指定目录

如果你想将 JAR 文件解压到一个特定的目录(unpacked_files),可以使用 -C 选项(-C 后面跟目标目录)。

# 先创建目标目录(如果不存在)
mkdir unpacked_files
# 解压到指定目录
jar xf my-app.jar -C unpacked_files

查看 JAR 文件内容而不解压

如果你想先看看 JAR 文件里有什么,可以使用 t (list table of contents) 选项。

jar解包命令具体该怎么用?-图3
(图片来源网络,侵删)
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)提供的特定插件来解压,或者使用像 jarunzip 这样的工具直接解压,然后手动处理类路径。


使用通用解压工具 (如 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 非常方便
  • 如果你不想打字,直接用图形界面工具
分享:
扫描分享到社交APP
上一篇
下一篇