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大很多,这个是正常. 运行无任何区别

相关推荐
带多刺的玫瑰2 小时前
Leecode#4刷题之寻找两个正序数组的中位数
java·前端·算法
阿无,2 小时前
布隆过滤器
java·算法·哈希算法
Pocker_Spades_A2 小时前
飞算JavaAI 48分钟能做完Java全栈项目吗?
java·springboot·#ai编程·#飞算javaai·#java代码生成·#aicoding模型·#java开发
步行cgn3 小时前
MyBatis 一对多关联映射详解
java·后端
用户3126874877203 小时前
线程池到底怎么调?从源码看懂 ThreadPoolExecutor 的 7 个参数
java
SQL-First布道者3 小时前
持久层框架的评价标准:只有一个
java·spring boot·spring·tomcat·mybatis·spring jdbc
孔明click333 小时前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·sa-token·开源·springboot·权限认证
m0_587383004 小时前
智慧场馆解决方案实战指南:从系统架构到落地部署全解析
java·spring boot·架构·系统架构
ZC跨境爬虫4 小时前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
省长4 小时前
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
java·后端·开源