使用jar命令管理jar包

简介: 使用jar命令管理jar包

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


相关文章
|
29天前
|
Java Docker 容器
|
1月前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
30 0
|
2月前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
25 0
|
5天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
26 0
|
7天前
|
Java Maven
springboot jar包启动提示没有主清单属性
springboot jar包启动提示没有主清单属性
|
8天前
|
分布式计算 DataWorks Java
DataWorks产品使用合集之阿里云DataWorks专有云环境下,上传MaxCompute的UDF(用户自定义函数)的JAR包的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
18 0
|
18天前
|
Java
JSTL jar包版本错误attribute items does not accept any expressions
确保你在 `items` 属性中使用了一个实际的集合或数组变量,而不是表达式,以解决这个问题。
12 0
|
26天前
|
Java Windows
【报错】java -jar 命令启动后中文乱码
在Windows上运行jar包遇到乱码问题,包括DOS窗口日志乱码和程序数据乱码。解决方法:1) 使用`chcp 65001`命令切换控制台到UTF-8编码显示日志;2) 运行jar时指定编码,如`java -Dfile.encoding=utf-8 -jar xxx.jar`,确保数据解码正确。
|
29天前
|
Java Android开发
读取jar包内外文件
读取jar包内外文件