修改jar包中文件

1、查看jar中文件

jar -tvf abc.jar

eg.

d:	mp	est20210619>jar -tvf asm-util-3.2.jar
   211 Tue Jul 07 00:05:20 CST 2009 META-INF/MANIFEST.MF
   165 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/ASMifiable.class
  3701 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/ASMifierAbstractVisitor.class
  1908 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/ASMifierAnnotationVisitor.class
  6484 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/ASMifierClassVisitor.class
   260 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/ASMifierFieldVisitor.class
  6518 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/ASMifierMethodVisitor.class
  2967 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/AbstractVisitor.class
  2068 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/CheckAnnotationAdapter.class
  8438 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/CheckClassAdapter.class
  1132 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/CheckFieldAdapter.class
  1589 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/CheckMethodAdapter$1.class
 14241 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/CheckMethodAdapter.class
  2879 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/CheckSignatureAdapter.class
  1962 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/TraceAbstractVisitor.class
  4204 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/TraceAnnotationVisitor.class
  6422 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/TraceClassVisitor.class
   727 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/TraceFieldVisitor.class
  7812 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/TraceMethodVisitor.class
  3382 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/TraceSignatureVisitor.class
   145 Tue Jul 07 00:05:22 CST 2009 org/objectweb/asm/util/Traceable.class

 2、解压jar中文件

// 指定待解压的jar中目录,不指定默认解压整个jar包
jar -xvf abc.jar a/b/c

// 仅解压jar包中单个文件
jar -xvf strs-dist-hadoop-prod.jar logback.xml

3、更新jar中文件

// 更新指定目录下的所有文件
jar -uvf abc.jar a/b/c

//更新单个文件
jar -uvf strs-dist-hadoop-prod.jar logback.xml
  • 文件夹a与abc.jar在同级目录
  • 不指定文件夹a/b/c,默认当前目录为待更新的目标目录
  • 覆盖更新指定目录的文件,原jar中不涉及的文件不做修改,亦不删除

例如:更新多个目录文件,(m表示包含MANIFEST.MF文件)

jar -uvf kafka_2.10-0.9.0.1.jar abc/* bb/*

4、创建jar包

// 将当前目录下所有文件打包
jar -cvf abc.jar ./*
  • 创建jar包abc.jar,如果不存在,如果存在则覆盖
  • 可以指定jar的存放路径,执行目录必须是需打包文件的根目录并且文件路径为相对路径

例如:指定多个目录打包,打好的jar包存放在根目录上一级目录

jar -cvf ./../abc.jar ./META-INF/* ./bb/* kk.log LICENSE NOTICE ./kafka/*

转自:https://www.cnblogs.com/defall/p/9384392.html

原文地址:https://www.cnblogs.com/ylz8401/p/14905638.html