多年前接触了 JAVA ,但久未使用,大多命令已经模糊,最近项目上用到了 JAVA 的程序包,部分配置都是写在了 JAR 程序包里,对配置文件的修改需要对 JAR 程序包进行文件替换,以此重温下 JAR 命令的使用,主要记录下对 JAR 包的文件替换及打包。
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 压缩。 |
查看jar包中的文件列表
jar -tvf test.jar
提取 jar 包中的文件
jar -xvf test.jar [file] # 若无指定目录文件,则解压所有,若目录或文件不存在,不会报错,但不会解压。
更新替换 jar包
jar -uf test.jar dir/class/ # 将 dir/class/ 中的内容更新替换或追加到 test.jar 包中
打包并创建 jar
jar -cvfM0 bootdo-2.0.0_0304.jar BOOT-INF/ META-INF/ org/ # 将所选的目录打包成 jar 包