jar文件解压缩

查看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
点赞12 分享