Linux中如何修改jar包里的文件类及配置等内容详解
作者:A-刘晨阳
一、前言
在工作中,我们有时候使用的是外网或者是云服务器又或者是vpn之类的,传输文件很慢,就比如一个jar包有300M,上传速度还有限制就很慢;但是修改的内容呢可能只是jar包里的一个class类文件或者是一个配置文件,这种小修改;开发呢修改完之后还要打jar包,打包好之后还要传输上去,如果有网络限制,特别是使用vpn的时候上传速度就会很慢,所以本次教大家如何在Linux中修改jar包的class类文件或配置文件。
二、常用命令解析:
使用
jar命令来实现jar包或war包的替换文件;
| 参数 | 解析 | 常用参数组合 |
|---|---|---|
| -f | 指定档案文件名 | -tvf / -xvf / -uvf |
| -v | 输出详细信息 | -tvf / -xvf / -uvf |
| -c | 创建新档案 | -cf / -cvf |
| -t | 列出jar包或档案的目录 | -tf / -tvf |
| -x | 从ar包或档案中解压提取指定文件 | -xf / -xvf |
| -u | 更新现有的jar包或档案 | -uf / -uvf |
示例:
# 1、列出JAR文件中的所有文件和目录: jar tvf test.jar # 这会显示test.jar文件中包含的所有文件和目录。 # 2、解压JAR文件到当前目录下: jar xvf test.jar # 执行此命令后,test.jar文件中的内容将被解压到当前目录中,并按照原始的目录结构进行存储。 # 3、创建一个新的JAR文件,并将指定文件添加到其中: jar cvf test.jar file1 file2 # 以上命令将创建一个名为test.jar的JAR文件,并将文件file1和file2添加到其中。 # 4、向已存在的JAR文件中添加文件: jar uf test.jar file1 # 该命令向test.jar文件中添加file1文件。
三、jar包更新步骤详细解析(4步)
3.1 查询class类所在jar包的位置
使用
jar tvf jar名称 | grep 目标文件名查询出目标文件在 jar / war 包中的目录
比如:我们查找test.jar中的Main.class类
jar tvf test.jar | grep Main.class

3.2 解压jar包提取class类
使用
jar xvf jar名称 目标文件名(copy上面查出的全路径)将目标文件及所在war包中的目录解压到当前路径
注意: 解压的时候可以单独创建一个目录,然后把jar包放到新创建的空目录里进行解压,避免和其他文件混乱。
比如:我们将刚刚查到的Main.class类解压下来
jar xvf test.jar Main.class

解压完就可以看到想要替换的类被单独拉出来了,如果是多层目录的话就会出现在多层目录里,然后需要进入更深层去替换一下;

3.3 替换要更新的class类
①、上传要替换的class类到linux上
②、替换解压下来的class类
3.4 将替换的class类更新到jar包中
③、使用jar uvf jar名称 目标文件名(和步骤(2)中的目标文件名相同) 将新目标文件替换到 jar包中
jar uvf test.jar Main.class

这样就可以替换成功了,替换成功之后再次运行jar包验证是否成功;

我这里已经可以看到运行成功了,也就证明替换成功了;
四、更新jar包文件 - 总结
# (1)使用jar tvf jar名称 | grep 目标文件名 查询出目标文件在war包中的目录 jar tvf test.jar | grep Main.class # (2)使用jar xvf jar名称 目标文件名(copy上面查出的全路径) 将目标文件及所在war包中的目录解压到当前路径 jar xvf test.jar Main.class # (3)修改目标文件的内容,或者将要新的目标文件替换掉提取出来的目标文件 cp /Main.class Main.class # (4)使用jar uvf jar名称 目标文件名(和步骤(2)中的目标文件名相同) 将新目标文件替换到 jar包中 jar uvf test.jar Main.class
更换文件不一定是class类才可以,也可以是配置文件或者是其他文件都可以;
到此这篇关于Linux中如何修改jar包里的文件类及配置等内容的文章就介绍到这了,更多相关Linux修改jar包文件类及配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
