JAR包本质是ZIP格式的压缩文件,内部包含了编译后的class文件、配置文件、依赖资源等内容,在Linux系统中可以通过多种方式实现解压和查看操作,不同方法适用于不同的使用场景。

方法一:使用unzip工具解压查看
unzip是Linux系统常用的ZIP格式解压工具,大部分Linux发行版默认已经安装,若未安装可以通过包管理器安装,比如Ubuntu系统执行sudo apt install unzip,CentOS系统执行sudo yum install unzip。
1. 查看JAR包内文件列表
不需要解压整个JAR包,直接列出内部所有文件,执行以下命令:
# 查看test.jar内部所有文件 unzip -l test.jar
命令执行后会输出JAR包内所有文件的路径、大小、修改时间等信息,方便快速定位需要查看的文件。
2. 解压JAR包到指定目录
如果需要提取JAR包内的所有文件,可以执行以下命令:
# 将test.jar解压到当前目录的test_jar文件夹下 unzip test.jar -d test_jar
解压完成后进入test_jar目录就可以查看所有文件内容,修改后如果需要重新打包可以使用jar cvf 新包名.jar -C 解压目录/ .命令。
方法二:使用JDK自带的jar命令操作
如果系统中已经安装了JDK,也可以直接使用JDK自带的jar命令完成解压查看操作,该命令是Java开发环境的标配工具,不需要额外安装。
1. 查看JAR包内容列表
执行以下命令可以列出JAR包内的所有文件:
# 列出test.jar内部文件 jar tf test.jar
2. 解压JAR包
执行以下命令可以将JAR包解压到当前目录:
# 解压test.jar到当前目录 jar xf test.jar
如果需要解压到指定目录,可以先创建目标目录,再切换到目标目录执行解压命令,或者结合-C参数使用:
# 解压test.jar到指定目录 mkdir -p /tmp/jar_content jar xf test.jar -C /tmp/jar_content
方法三:直接查看单个文件内容
如果只需要查看JAR包内的某一个文件,不需要解压整个包,可以使用以下两种方式:
1. 使用unzip直接输出文件内容
# 查看test.jar内的application.yml文件内容 unzip -p test.jar BOOT-INF/classes/application.yml
2. 使用jar命令结合重定向
# 提取test.jar内的指定文件到标准输出 jar xf test.jar BOOT-INF/classes/application.yml && cat BOOT-INF/classes/application.yml
操作注意事项
- 解压JAR包前建议先备份原文件,避免误操作导致文件损坏。
- 如果JAR包是Spring Boot的可执行包,内部文件结构会包含
BOOT-INF、META-INF等目录,查看配置文件时需要注意路径。 - 修改JAR包内文件后重新打包时,需要保证
META-INF/MANIFEST.MF文件内容正确,否则可能导致JAR包无法运行。
方法对比
| 方法 | 依赖工具 | 适用场景 |
|---|---|---|
| unzip工具 | 系统unzip包 | 快速查看、解压任意JAR包,无需JDK环境 |
| jar命令 | JDK环境 | Java开发环境已经安装的场景,操作更符合Java生态习惯 |
| 直接查看单文件 | unzip或jar命令 | 仅需查看个别文件,不需要解压整个包的场景 |