使用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


相关文章
|
4天前
|
Java Docker 容器
|
4天前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
39 0
|
4天前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
26 0
|
4天前
|
Java 测试技术 Maven
maven 打jar包:mvn clean package
maven 打jar包:mvn clean package
32 7
|
4天前
|
Java Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(一)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
18 0
|
21小时前
|
Oracle Java 关系型数据库
实时计算 Flink版操作报错合集之本地打成jar包,运行报错,idea运行不报错,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
15 6
|
4天前
|
Java Go Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(二)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
13 0
|
4天前
|
前端开发 Java Linux
宝塔Linux:部署His医疗项目通过jar包的方式
宝塔Linux:部署His医疗项目通过jar包的方式
|
4天前
|
安全 Java Docker
|
4天前
|
Java
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
如何解决使用若依前后端分离打包部署到服务器上后主包无法找到从包中的文件的问题?如何在 Java 代码中访问 jar 包中的资源文件?
53 0

热门文章

最新文章