平时需要更改 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