修改JAR文件并重新打包的两种方式
本文介绍两种修改 JAR 包内文件(如配置文件或 Class 文件)后重新打包的方式:Ja va 命令方式 与 Ant 脚本方式。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

核心警告
对于 Spring Boot 的可执行 JAR 包,重新打包时严禁使用压缩(必须使用存储模式),否则会导致 ClassNotFoundException 或启动失败。
一、Ja va 命令方式 (通用/快速)
这种方式最适合临时修改,或者手头没有构建工具的环境。操作直接,几步就能搞定。
1. 解压 JAR 文件
第一步,就是把 JAR 包里的内容“掏”出来。打开终端,执行这条命令:
# -x: 解压, -f: 指定文件, -v: 显示过程(可选) jar -xf your-file.jar
执行后,当前目录下就会出现解压出来的所有文件和文件夹。
2. 修改文件
接下来,就是自由发挥的时间了。进入解压后的目录,找到你需要修改的文件。比如,要改配置文件,就编辑 BOOT-INF/classes/application.yml;要替换某个类,就找到对应的 .class 文件进行覆盖。
3. 重新打包 (关键步骤)
修改完成,重新打包。这里有个关键点,敲黑板了:
# 注意:必须包含 -0 参数(存储模式,不压缩) jar -cvfm0 new-package.jar META-INF/MANIFEST.MF ./
这几个参数是这么回事:
-c: 创建新的归档文件。-v: 生成详细输出,让你看到打包过程。-f: 指定最终生成的归档文件名。-m: 包含清单文件META-INF/MANIFEST.MF,这能保留原 JAR 的Main-Class等关键配置。-0: 存储模式(不压缩)。这是 Spring Boot 嵌套 JAR 结构能正常工作的生命线,绝对不能省。
二、使用 Ant 脚本方式 (自动化/批处理)
如果你需要频繁修改,或者项目还在用老旧的构建流程,那么写一个 Ant 脚本来自动化整个过程会更高效。
1.build.xml配置示例
下面是一个可以直接拿来用的 build.xml 示例,注释写得很清楚了:
Spring Boot JAR 包热修复/修改工具
2. 执行流程
使用起来就两步,非常清晰:
# 第一步:解压 (依赖 init 和 unjar) ant unjar # [手动操作] 此时进入 unpacked_classes 目录修改文件 # 第二步:重新打包 ant package
核心避坑与最佳实践
方法学会了,但想一次成功不踩坑,还得注意下面这些细节。经验表明,很多启动失败的问题,根源都在这里。
| 关注点 | 说明 |
|---|---|
| 压缩级别 | Spring Boot 的 BOOT-INF/lib 下的依赖包必须保持 STORED(不压缩)状态,否则类加载器无法正确读取。 |
| 目录结构 | 严禁改变 META-INF、BOOT-INF 和 org 目录的层级关系。 |
| 数字签名 | 如果原 JAR 包有数字签名(META-INF/*.SF, *.RSA),修改内容后会导致签名失效。生产环境需重新签名,测试环境可删除签名文件。 |
| 清单文件 | 确保 MANIFEST.MF 中的 Main-Class 指向正确(Spring Boot 通常是 org.springframework.boot.loader.JarLauncher)。 |
最后,别忘了验证:
打包完成后,花几秒钟检查一下新 JAR 的内部结构,确认文件都在正确的位置:
jar -tf new-package.jar | head -n 20
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
CentOS Java如何恢复配置
CentOS Ja va配置恢复指南 遇到Ja va环境突然“罢工”,别慌。这通常不是大问题,多半是配置被意外改动或链接损坏了。下面这份指南,能帮你像老手一样,快速定位问题并精准恢复。 一 恢复前快速定位现状 动手修复前,先花两分钟摸清现状。盲目操作,可能会让情况更复杂。 查看当前 Ja va 可执
CentOS Java版本如何查询
在CentOS系统中查询已安装的Ja va版本 如果你正在CentOS服务器上工作,或者管理着基于Linux的Ja va应用环境,那么快速确认当前系统使用的Ja va版本,几乎是日常操作中的必备技能。别担心,这个过程其实非常简单直接,只需要几个命令就能搞定。 操作步骤详解 整个查询过程可以概括为两个
CentOS Java如何停止服务
在CentOS系统中优雅地停止Ja va服务 当你在CentOS服务器上运行Ja va应用时,总会遇到需要停止服务的情况——无论是为了部署更新、释放资源,还是排查问题。这个过程本身并不复杂,但关键在于如何准确、安全地找到并终止目标进程,避免误操作。下面,我们就来梳理一下这个标准操作流程。 第一步:定
CentOS Java如何启动服务
在CentOS上启动Ja va服务:两种主流方案详解 在CentOS环境中部署Ja va应用,如何让它稳定、可靠地运行并实现开机自启?这几乎是每一位系统管理员或开发者都会遇到的实操问题。今天,我们就来深入聊聊两种最主流、也最经得起考验的启动方案:Systemd和init d脚本。两种方法各有侧重,选
CentOS Java安全策略怎么设置
CentOS 上配置 Ja va 安全策略 一 准备与环境确认 动手之前,有几项准备工作必须到位。首先,确认 Ja va 环境已经就绪。打开终端,输入 ja va -version 命令,如果能看到版本信息,说明安装成功。如果系统提示未找到命令,那就需要先安装,例如使用命令 sudo yum ins
- 日榜
- 周榜
- 月榜
1
2
3
4
5
6
7
8
9
10
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
热门话题

