1 查看jar包内容
[root@ ~]# jar -tvf fastjson.jar |head -100 Wed Oct 0513:34:30 CST 2022 META-INF/ 81 Wed Oct 0513:34:30 CST 2022 META-INF/MANIFEST.MF 0 Wed Oct 0513:34:10 CST 2022 META-INF/scm/ 0 Wed Oct 0513:34:10 CST 2022 META-INF/scm/com.alibaba/ 0 Wed Oct 0513:34:10 CST 2022 META-INF/scm/com.alibaba/fastjson/ 0 Wed Oct 0513:34:10 CST 2022 com/ 0 Wed Oct 0513:34:10 CST 2022 com/alibaba/ 0 Wed Oct 0513:34:10 CST 2022 com/alibaba/fastjson/ 0 Wed Oct 0513:34:10 CST 2022 com/alibaba/fastjson/serializer/ 0 Wed Oct 0513:34:10 CST 2022 com/alibaba/fastjson/util/
2 从jar包中抽取文件
从fastjson.jar包里抽取pom.xml文件
[root@ ~]# jar -xvf fastjson.jar META-INF/maven/com.alibaba/fastjson/pom.xml inflated: META-INF/maven/com.alibaba/fastjson/pom.xml
jar命令会在当前目录下创建要抽取文件的所有上级目录,抽取文件的路径同文件在jar包中的路径相同,如果文件是在jar包根目录下,抽取的文件会存储在当前目录下,这时要注意当前目录下同名的文件会被覆盖,需要备份或改名。
3 更新jar包中的文件
更新jar包中的文件时要注意的时文件的路径,命令中文件的路径同文件在jar包中的路径相同。在META的上级目录执行下面的命令。
pom文件抽取出来后已经编辑过,加了一行注释信息
[root@ ~]# jar -uvf fastjson.jar META-INF/maven/com.alibaba/fastjson/pom.xml adding: META-INF/maven/com.alibaba/fastjson/pom.xml(in =11669) (out=1855)(deflated 84%)
查看一下jar包里的文件
[root@ ~]# jar -tvf fastjson.jar |grep pom11669 Wed Oct 1910:23:06 CST 2022 META-INF/maven/com.alibaba/fastjson/pom.xml 55 Wed Oct 0513:34:30 CST 2022 META-INF/maven/com.alibaba/fastjson/pom.properties
从文件里时间里可以看到pom.xml是刚在更新的文件。从jar报里提取这个文件,看一下这个文件里面的内容
[root@ ~]# jar -xvf fastjson.jar META-INF/maven/com.alibaba/fastjson/pom.xml inflated: META-INF/maven/com.alibaba/fastjson/pom.xml [root@ ~]# head -10 META-INF/maven/com.alibaba/fastjson/pom.xml <?xml version="1.0"encoding="UTF-8"?> <!-- edit by test user -> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-parent</artifactId> <version>2.0.15</version>
4 在jar包中增加文件
jar包中加文件也使用-u选项,当文件在jar包中不存在时,文件就会加入到jar包中。
[root@ ~]# jar -uvf fastjson.jar META-INF/help.info adding: META-INF/help.info(in =23) (out=23)(deflated 0%) [root@ ~]# jar -tvf fastjson.jar |grep help23 Wed Oct 1910:33:26 CST 2022 META-INF/help.info