第十七周_T- jar 命令

64 阅读2分钟

平时需要更改 jar 包里面的内容:我们遇到的有两种情况。

一、修改我们自己项目生成的 jar 包,一般是修改配置文件(当然也不可能去直接修改 class 文件)

直接 vim xxx.jar (这里不能使用 vi) ,下面就是 vim 的命令操作了。

可参考以前的一篇文章:juejin.cn/post/715325…

二、修改一些中间件里面的 jar 内容

背景:我自己想要基于官方的 tomcat.tar.gz 包用 docker 生成一个新的镜像

我想要屏蔽 tomcat 的版本号:在 lib/catalina.jar/ 下修改此文件org/apache/catalina/util/ServerInfo.properties

  • unzip catalina.jar 先解压此包,并修改文件「也可使用 jar-xf xxx.jar」
  • jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties 将修改后的文件放回去

jar

简介

JAR 文件的全称是 Java Archive File (Java 档案文件),通常 JAR 文件是一种压缩文件,且与常见的 zip 文件兼容(所以上面使用 unzip 和 jar 解压都行)。

两者的区别是 JAR 拥有清单文件 (META-INF/MANIFEST.MF),会自动生成的。

来源

jar 是在 JDK 里面的。现在我们运行 Java 项目,最小的环境是 JRE。此时可以运行 java -version 但是没有 jar 命令。所以下次安装的时候最好直接安装 JDK 吧。

使用

使用格式:jar {ctxui}[vfmn0pMe][jar-file][manifest-file][entry-point][-C dir] files

选项:

-f 指定 jar 的文件名

-c 新建一个 jar 包

-t 显示 jar 包内容列表

-x 解压 jar 包

-u 添加文件到 jar 中

-v 生成详细的报告,并输出至标准设备

-0 (阿拉伯数字 0 )产生 jar 包不对其中的内容压缩

-M 不产生清单文件

-C 转到相应的目录下执行 jar 命令,相当于 cd 到那个目录下,然后不带 -C 执行命令


最常用的还是解压添加文件:下面给出示例

#向 xxx.jar 包中添加 xxx 文件
jar uvf xxx.jar xxx 
# 解压 hello.jar 文件
jar xvf hello.jar
# 在 file 文件夹下,将 test 打成 test.jar 包
jar -cvf test.jar -C file/ test