jar包的快速修改和重新发布

这里针对的是java打包后的jar包,其他不确定. jar程序在发布后发现有小bug,但是程序整体的重新打包和发布,上传,有时候比较耗时. 这个场景就很好用.

说明:

  • jar包为test.jar,被替换的文件 test.class
  • jar这个命令是jdk下/bin/下的命令

1.解压

复制代码
jar xvf test.jar

解压后解压出三个文件夹: BOOT-INF,META-INF,org

2.替换.class文件

找到需要被修改的.class文件,直接替换

3.重新压缩

复制代码
jar cvfM0 ./test.jar ./BOOT-INF/ ./META-INF/ ./org/

重新压缩成test.jar,完成

  • 命令含义:c = 创建新包(Create),v = 详细输出,f = 指定文件名,m = 包含清单文件(Manifest),0 = 不压缩(Store only)。
  • 关键点 0:必须加!
    如果不加 0,JAR 工具会对文件进行 DEFLATE 压缩。
    Spring Boot 等框架构建的可执行 JAR/WAR,内部文件通常已被预压缩,再次压缩可能导致程序启动报错或校验失败。
    cvfm0 后的参数顺序严格对应:目标包名 -> 清单文件路径 -> 要打包的目录

4.效果

重新压缩后的jar会比原jar大很多,这个是正常. 运行无任何区别

相关推荐
2601_962106641 小时前
【Java Set综合实战】商品管理系统 + 图书收藏系统|Product、Book自定义类全套代码
java
RuoyiOffice2 小时前
SpringBoot+Vue3 凭证生命周期设计:审核、过账、冲销与反过账怎样保持账目一致
java·spring boot·事务·springboot3·财务系统·会计凭证·ruoyi office
2601_962106642 小时前
HashMap入门|工号-姓名键值存储、两种遍历方式、根据key/value查
java
杨凯凡3 小时前
Spring Framework 7 API 版本管理实战:请求头路由、兼容迁移与废弃策略
java·rest api·springframework·spring boot 4·api版本管理
T_Wizard3 小时前
同一个问题写了 4 遍:官方 SDK / HTTP / Spring AI / LangChain4j,到底该选哪个
java·ai编程
hai_android3 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
斯维赤4 小时前
限流、熔断、降级,你真的分得清吗?
java·后端·架构
aiks_yuan6 小时前
Java CPU 100% 怎么排查:JDK 11 起 jstack 自带线程 CPU 时间,不用再 top -H 换算十六进制(JDK 8、11、17 实测)
java
Flynn Liang8 小时前
AiServices 源码级拆解:一个接口如何变成 RAG Agent
java·langchain·源码分析·rag·langchain4j·aiservices
Flynn Liang8 小时前
LangChain4j 1.23 架构全景:Java 大模型应用的 6 层抽象
java·langchain·大模型·rag·ai agent·langchain4j