当前位置: 首页 > news >正文

java jar包内的jar包如何打补丁

问题描述

主包:hisca.jar,解压后 BOOT-INFO/lib下有其他jar包

因为一个小bug,需要修改这个hisca包下BOOT-INF/lib下的子jar包service-hisca-impl-1.0.0.jar中的一个service类及xml文件

操作步骤

1、主包jar -xvf hisca.jar解压后,找到内层包service-hisca-impl-1.0.0.jar

2、内层包使用jar -xvf  service-hisca-impl-1.0.0.jar 解压后,替换里面的class文件后,再重新使用 jar -cvf service-hisca-impl-1.0.0.jar * 打包新的内层补丁包;

3、将打包的新内层jar包拷贝到解压后的主包的指定目录下;

重新将解压后的主包目录下所有文件打包,jar -cvf hisca.jar * 打主包

打包后运行错误

但这样操作后java -jar启动主包报错:

 java.lang.IllegalStateException: Unable to open nested entry 'BOOT-INF/lib/spring-boot-starter-2.3.0.RELEASE.jar'. It has been compressed and nested jar files must be stored without compression. Please check the mechanism used to create your executable jar file

感觉在打包过程中,把内层jar包都压缩了,导致无法正确读取jar包?

网上提供了一个解决方案,使用windows的 winRAR修改jar包:

解决方案

        首先要把lib下的jar包拉出来,进行文件替换,压缩方式使用存储(如果不选默认压缩方式是标准,会对文件进行压缩的,jar命令貌似也做了压缩,所以上面方式不可取);然后将jar包再拉到lib下,压缩方式依然使用存储。
        在替换jar包里的文件的时候,用压缩工具打开(可以用winrar、好压,因为可以选压缩方式),将需要替换的文件拖进压缩包,此时要注意:更改压缩方式为存储!更改压缩方式为存储!更改压缩方式为存储!默认是标准

image

http://www.lryc.cn/news/544435.html

相关文章:

  • 面试(进阶) —虚拟列表在什么场景使用,如何实现?
  • 深入了解 NAT 模式:网络地址转换的奥秘
  • Android Studio 新版本Gradle发布本地Maven仓库示例
  • 无服务边缘融合架构:重新定义云原生应用边界
  • 数据库测试
  • Nodejs-逐行读取文件【简易版】
  • 上海市计算机学会竞赛平台2024年5月月赛丙组城市距离之和
  • 穷举vs暴搜vs深搜vs回溯vs剪枝(典型算法思想)—— OJ例题算法解析思路
  • 在ubuntu 24.04.2 通过 Kubeadm 安装 Kubernetes v1.31.6
  • 基于Python socket库构建的基于 P2P 的文件共享系统示例
  • JavaScript 函数重载:灵活应对多场景的编程技巧
  • 通过 PromptTemplate 生成干净的 SQL 查询语句并执行SQL查询语句
  • 用大白话解释缓存Redis +MongoDB是什么有什么用怎么用
  • 计算机毕业设计SpringBoot+Vue.js汽车销售网站(源码+文档+PPT+讲解)
  • 【0010】HTML水平线标签详解
  • FastExcel与Reactor响应式编程深度集成技术解析
  • Netty是如何实现零拷贝的?
  • 【大模型➕知识图谱】大模型结合医疗知识图谱:解锁智能辅助诊疗系统新范式
  • Spring Boot @Component注解介绍
  • MulFS-CAP: Multimodal Fusion-supervisedCross-modal
  • WordPress多语言插件GTranslate
  • wordpress子分类调用父分类名称和链接的3种方法
  • Prometheus + Grafana 监控
  • 初学STM32之简单认识IO口配置(学习笔记)
  • springboot2.7.18升级springboot3.3.0遇到的坑
  • gtest 和 gmock讲解
  • GC垃圾回收介绍及GC算法详解
  • 2020 年英语(一)考研真题 笔记(更新中)
  • 【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
  • playbin之autoplug_factories源码剖析