windows使用命令解压jar包,替换里面的文件。并重新打包成jar包,解决Failed to get nested archive for entry

有一个jar包,需要替换里面的文件,使用解压工具打开项目,然后找到对应的子包,再次打开,然后进行手工替换重新压缩成jar包后,发现启动服务报错Failed to get nested archive for entry。

使用下面的命令可实现替换并重新打包成jar包的功能

1、解压

点击红框输入cmd回车进入窗口,输入命令:

java 复制代码
jar -xvf main.jar

解压后出现三个文件夹

2、替换文件并重新添加到初始jar包

替换BOOT-INF文件夹里面的jar包或class文件,替换之后执行打包命令进行再次打包,命令如下

java 复制代码
jar -uvf0 main.jar .\BOOT-INF\classes\org\springblade\modules\api\controller\DeviceController.class

-u: 表示更新现有 JAR 文件。这会将指定的新文件添加到 JAR 文件中,如果文件已存在,则会覆盖原有的文件。

-v: 表示详细模式,即在标准输出中显示有关文件添加的详细信息。

-f: 指定要更新的 JAR 文件名

0 表示压缩级别为 0,意味着不压缩。这是一个数字零,而不是字母 "o"。这意味着文件会被原样放入 JAR 文件中,不会进行任何压缩。

看到如下提示,则证明编译成功

可以把三个文件夹删除了,如果不放心可再次解压后查看。

使用命令看看jar是否可以正常启动

java 复制代码
java -jar main.jar --server.port=8081

总结:

1、解压:jar -xvf xx.jar

2、替换文件

3.、把替换的文件追加到jar包:

java 复制代码
jar -uvf0 main.jar .\BOOT-INF\classes\org\springblade\modules\api\controller\DeviceController.class

4、测试启动:jar main.jar --server.port=8081

相关推荐
学长毕设17 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
zzu123zsw18 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
源码集结号19 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场19 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠19 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David20 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放20 小时前
Python基础语法练习题(73)
java·前端·python
Wang's Blog20 小时前
Java 项目实战: 交友项目 - 环信后台发送消息测试
java·交友
用户37215742613521 小时前
Java 操作 Word 脚注和尾注:添加、读取与删除
java
小嘉丶学长21 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节