linux 下手动增加更新 jar 中文件

文前说明

作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

本文仅供学习交流使用,侵权必删。
不用于商业目的,转载请注明出处。

查看 jar 包中的文件列表,并进行重定向

jar -tvf a.jar > a.txt 

更新文件到 jar 中,目录需对应

jar -uf a.jar com/a.class
  • a.class 文件在 jar 包中的目录是 com/a.class。
  • a.class 文件在本地路径,相对 a.jar 包,也是 com/a.class。
-rw-r--r--. 1 root root    5418 Aug  9 23:59 a.jar
drwxr-xr-x. 3 root root      19 Oct 10 01:58 com

增加文件到 jar 中,目录需对应

与修改一致,jar 中原来没有的目录,会自动创建。

jar -uf a.jar com/test/a.class

jar -tvf a.jar > a.txt 

查看 a.txt 内容会发现 jar 包中自动创建了 com/test/ 目录。

JAR 命令

命令 说明
-c 在标准输出上创建新归档或空归档。
-C 在执行 jar 命令期间更改目录。jar -uf a.jar -C classes * 将 classes 目录内的所有文件加到 a.jar 中,但不添加类目录本身。
-f 第二个参数指定要处理的 jar 文件(文件列表中的第一个元素是要创建或访问的存档文件名字)。在 -c (创建)情形中,第二个参数指的是要创建的 jar 文件的名称(不是在标准输出上)。在 -t (表(或 -x (抽取)这两种情形中,第二个参数指定要列出或抽取的 jar 文件。
-i 应提供的索引信息。
-m 包括指定的现有清单文件中的清单信息(文件列表的第二个元素是外部的清单文件名)。用法举例:jar cmf myManifestFile myJarFile *.class
-M 不创建项目的清单文件。
-t 在标准输出上列出内容表(存档文件的内容应制成表格)。
-u 通过添加文件或更改清单来更新现有的 JAR 文件。例如:jar -uf a.jar a.class 将文件 a.class 添加到现有的 JAR 文件 a.jar 中,而 jar umf manifest foo.jar 则用 manifest 中的信息更新 a.jar 的清单。
-v 在标准错误输出设备上生成长格式的输出结果(当工具执行时显示的详细信息)。
-x[file] 从标准输入提取所有文件,或只提取指定的文件。如果省略了 file,则提取所有文件;否则只提取指定文件。
-0 只储存,不进行 ZIP 压缩。

推荐阅读更多精彩内容