查看jar文件中的信息
# 查看JAR包内容列表
jar -tf filename.jar
# 或者使用unzip查看
unzip -l filename.jar
解压jar文件
# 解压到当前目录
jar -xvf filename.jar
# 解压到指定目录
unzip filename.jar -d target_directory/
打包压缩
参数解释说明
| 选项参数 | 功能说明 |
| -c | 创建新的归档文件 |
| -t | 列出归档文件的目录列表 |
| -x | 从归档中提取指定(或所有)文件 |
| -u | 更新现有归档文件 |
| -v | 在标准输出上生成详细输出信息 |
| -f | 指定归档文件名 |
| -m | 从指定清单文件中包含清单信息 |
| -n | 创建新归档后执行Pack200规范化处理 |
| -e | 为打包成可执行jar文件的独立应用程序 |
| 指定应用程序入口点 | |
| 0 | 仅存储,不使用ZIP压缩 |
| -P | 保留文件名中的前导’/’(绝对路径) |
| 和”..”(上级目录)组件 | |
| -M | 不为条目创建清单文件 |
| -i | 为指定的jar文件生成索引信息 |
| -C | 切换到指定目录并包含后续文件 |
# 创建JAR文件
jar -cf newfile.jar file1.class file2.class
# 打包整个目录
jar -cf newfile.jar ./
# 创建包含清单文件的JAR
jar -cmf MANIFEST.MF newfile.jar ./
更新文件
# 向现有JAR添加文件
jar -uf existing.jar newfile.class
# 更新清单文件
jar -umf MANIFEST.MF existing.jar
使用unzip的高级选项
# 仅解压特定文件
unzip filename.jar "com/example/*.class"
实际测试如下:单独解压出了1.txt
[root@vm-8 CeShi]# unzip -l 1.jar
Archive: 1.jar
Length Date Time Name
--------- ---------- ----- ----
0 11-14-2025 16:56 META-INF/
69 11-14-2025 16:56 META-INF/MANIFEST.MF
0 11-14-2025 16:55 1.txt
0 11-14-2025 16:55 2.txt
0 11-14-2025 16:57 3.txt
--------- -------
69 5 files
[root@vm-8 CeShi]# unzip 1.jar "1.txt"
Archive: 1.jar
extracting: 1.txt
[root@vm-855d-58a1573f1edd CeShi]# ls
1.jar 1.txt
# 安静模式解压(不显示输出)
unzip -q filename.jar
# 解压时覆盖现有文件
unzip -o filename.jar
# 测试JAR文件完整性
unzip -t filename.jar
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
