zoukankan      html  css  js  c++  java
  • jar

    jar - Manipulates Java Archive (JAR) files.

    jar命令是一种通用的存档和压缩工具,基于ZIP和ZLIB压缩格式。

    常用格式:
    * 创建jar文件
    jar c[efmMnv0] [jarfile] [manifest] [-C dir] file
    * 更新jar
    jar u[efmMnv0] [jarfile] [manifest] [-C dir] file
    * 解压jar
    jar x[vf] [jarfile] file
    * 列出jar目录文件
    jar t[vf] [jarfile] file
    * jar文件添加索引
    jar i jarfile [-Joption ...]

    常用选项:

    • -c :创建新har文件
    • -t :列出档案目录
    • -x :从档案中提取指定的(或所有)的文件
    • -u :更新现有档案
    • -v :输出详细信息
    • -f :指定档案名
    • -m :包含指定清单文件中的清单信息
    • -M :不创建条目的清单文件
    • -i :为指定的jar文件生成索引信息
    • -C :更改为指定的目录并包含以下文件

    **示例:** ``` ~]# jar xf businessShopService-1.0.jar BOOT-INF/lib/ #解压出BOOT-INF/lib目录 ~]# ls ]# ls BOOT-INF businessShopService-1.0.jar test.class

    ~]# rm -rf BOOT-INF

    ~]# jar -xf businessShopService-1.0.jar #解压jar包,后还可根jar包内目录路径,只解压出某个你想要的路径
    ~]# ls
    BOOT-INF businessShopService-1.0.jar META-INF org test.class

    ~]# jar -tf businessShopService-1.0.jar #查看jar包内所有文件路径

    <br />
    
    
    添加文件进jar包:
    

    这里我们给此jar包org内添加test目录和目录下的test.class文件

    ~]# jar tf commons-beanutils-1.9.3.jar | grep "org/test"

    ~]# ls
    commons-beanutils-1.9.3.jar test.class
    ~]# cat test.class
    hello world
    ~]# mkdir org/test -p
    ~]# mv test.class org/test/ #这里新增的文件路径得和jar包内的目录对应起来,不然会提示没有这个文件或目录。

    ~]# jar uvf commons-beanutils-1.9.3.jar org/test/test.class #将文件增加进jar包的相应目录下,如jar包中没有此目录,则会自动创建
    adding: org/test/test.class(in = 12) (out= 14)(deflated -16%)
    ~]# jar tf commons-beanutils-1.9.3.jar | grep "org/test" #文件加入成功。
    org/test/test.class

    查看jar包内新增文件内容是否正确

    ~]# cat $(jar tf commons-beanutils-1.9.3.jar| grep test.class)
    hello world

    <br />
    
    
    替换jar包内容:
    

    修改test.class内容

    ~]# echo "hello world! " > org/test/test.class

    替换文件,操作与新增一致。

    ~]# jar uvf commons-beanutils-1.9.3.jar org/test/test.class #将文件增加进jar包的相应目录下,如jar包中没有此目录,则会自动创建
    adding: org/test/test.class(in = 12) (out= 14)(deflated -16%)
    ~]# jar tf commons-beanutils-1.9.3.jar | grep "org/test" #文件加入成功。
    org/test/test.class

    查看jar包内替换文件内容是否正确

    ~]# cat $(jar tf commons-beanutils-1.9.3.jar org/test/test.class) #路径是jar包内文件的路径
    hello world!

    <br />
    
    
    多个不同目录下文件更新。打入包的规则是,有则覆盖,没有则新增。所以有多个文件需要更新时,只需要把要更新的文件的目录结构创建好,直接更新目录即可。
    

    ]# jar uvf commons-beanutils-1.9.3.jar org/ #后直接写目录即可。
    ...

    <br />
    
    
    
    
    参考博客:[https://blog.csdn.net/sparkstrike/article/details/61922307](https://blog.csdn.net/sparkstrike/article/details/61922307)
  • 相关阅读:
    C++ const
    facebook hacker cup 2013资格赛第二题
    最大全1子矩阵
    java HashMap的keyset方法
    树状数组
    Java entry
    一个数学证明:1(1x1)(1x2)...(1xn)<=x1+x2+...+xn, xi在[0,1]
    传教士野蛮人过河问题python
    在cmd中为命令设置别名以及启动cmd时自动执行bat
    合取Λ,析取V,容易记混吗?
  • 原文地址:https://www.cnblogs.com/dance-walter/p/10287323.html
Copyright © 2011-2022 走看看