上一篇
Linux如何解压并打开jar文件?
- Linux
- 2025-07-03
- 2210
在Linux中解压JAR文件使用命令
unzip 文件名.jar
,若要查看内容但不解压,可使用
jar tf 文件名.jar
,JAR本质是ZIP格式的归档文件。
在Linux系统中处理JAR(Java Archive)文件时,需根据实际需求选择操作方式,JAR本质是采用ZIP格式的压缩包,但包含Java特有的元数据(如MANIFEST.MF
),以下是三种常见场景的操作指南:
解压JAR文件(查看/修改内容)
▶ 方法1:使用 unzip
命令(推荐)
unzip your_file.jar -d output_directory/
- 作用:将JAR解压到指定目录
- 参数说明:
-d
:指定解压目录(不指定则解压到当前目录) - 示例:
unzip application.jar -d jar_contents/ # 解压到jar_contents文件夹
▶ 方法2:使用 jar
命令(JDK原生工具)
jar xvf your_file.jar -C output_directory/
- 作用:JDK内置解压工具,自动处理JAR特性
- 参数说明:
x
:解压文件
v
:显示详细过程(可选)
f
:指定文件名
-C
:指定目标目录 - 环境要求:需安装JDK(检查命令:
java -version
)
查看JAR内容(不解压)
▶ 查看文件列表
jar tf your_file.jar # 使用jar命令 unzip -l your_file.jar # 使用unzip命令
- 输出:显示JAR内所有文件的完整路径
▶ 查看特定文件内容(如配置文件)
unzip -p your_file.jar META-INF/MANIFEST.MF
- 参数说明:
-p
:将文件内容打印到终端
META-INF/MANIFEST.MF
:需查看的文件路径
运行JAR文件(作为应用程序)
java -jar your_file.jar
- 前提:
- 已安装JRE/JDK(通过
java -version
验证) - JAR包含可执行清单(
MANIFEST.MF
中指定Main-Class
)
- 已安装JRE/JDK(通过
- 常见问题:
- 若报错
no main manifest attribute
,需先解压修改MANIFEST.MF
再重打包(见第四节)
- 若报错
修改JAR文件并重打包
▶ 步骤演示
# 1. 解压JAR unzip original.jar -d temp_dir/ # 2. 修改内容(如更新配置文件) nano temp_dir/config.properties # 3. 重新打包(进入目录后操作) cd temp_dir/ jar cvf ../modified.jar . # 注意结尾的点(.)表示当前目录所有文件 # 4. 清理临时文件 cd .. rm -rf temp_dir/
️ 重要注意事项
- 签名问题:修改已签名的JAR会破坏数字签名,需重新签名才能使用安全特性
- 清单文件:勿删除
META-INF/MANIFEST.MF
,否则导致程序无法运行 - 编码问题:若含中文文件名,解压时添加
-O
参数(unzip -O GBK file.jar
)
图形化工具(适合新手)
- File Roller:Ubuntu等GNOME桌面默认归档管理器,双击JAR直接浏览
- Ark:KDE桌面的压缩工具(安装命令:
sudo apt install ark
) - 7-Zip:跨平台支持(安装命令:
sudo apt install p7zip-full
)
▎技术原理说明
JAR文件遵循ZIP压缩标准(RFC 1951),因此兼容ZIP工具操作,其特殊性在于:
- 必须包含
META-INF
目录存储元数据 MANIFEST.MF
定义启动类、类路径等Java运行时信息- 可能包含
INDEX.LIST
加速类加载
▎安全提示
- 解压前验证来源:避免反面文件(命令:
file your_file.jar
应返回Zip archive data
) - 勿直接运行未知JAR:可使用沙箱工具(如
firejail
)隔离运行 - 生产环境修改JAR:建议通过构建工具(Maven/Gradle)重新生成
引用说明
- Oracle官方JAR文件规范:JAR File Specification
- Linux
unzip
手册页:UNZIP(1) Manual- OpenJDK
jar
工具文档:jar Tool Reference- ZIP文件格式标准:APPNOTE.TXT – .ZIP File Format Specification
通过上述方法,您可安全高效地在Linux系统中管理JAR文件,建议优先使用JDK的jar
命令以保证Java特性兼容性,日常查看则用unzip
更便捷。