当前位置: 首页
编程语言
修改JAR文件并重新打包的两种方式

修改JAR文件并重新打包的两种方式

热心网友 时间:2026-04-30
转载

本文介绍两种修改 JAR 包内文件(如配置文件或 Class 文件)后重新打包的方式:Ja va 命令方式Ant 脚本方式

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

修改JAR文件并重新打包的两种方式

核心警告

对于 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-INFBOOT-INForg 目录的层级关系。
数字签名如果原 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
来源:https://www.jb51.net/program/362467ufv.htm

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
CentOS Java如何恢复配置

CentOS Java如何恢复配置

CentOS Ja va配置恢复指南 遇到Ja va环境突然“罢工”,别慌。这通常不是大问题,多半是配置被意外改动或链接损坏了。下面这份指南,能帮你像老手一样,快速定位问题并精准恢复。 一 恢复前快速定位现状 动手修复前,先花两分钟摸清现状。盲目操作,可能会让情况更复杂。 查看当前 Ja va 可执

时间:2026-04-30 13:51
CentOS Java版本如何查询

CentOS Java版本如何查询

在CentOS系统中查询已安装的Ja va版本 如果你正在CentOS服务器上工作,或者管理着基于Linux的Ja va应用环境,那么快速确认当前系统使用的Ja va版本,几乎是日常操作中的必备技能。别担心,这个过程其实非常简单直接,只需要几个命令就能搞定。 操作步骤详解 整个查询过程可以概括为两个

时间:2026-04-30 13:51
CentOS Java如何停止服务

CentOS Java如何停止服务

在CentOS系统中优雅地停止Ja va服务 当你在CentOS服务器上运行Ja va应用时,总会遇到需要停止服务的情况——无论是为了部署更新、释放资源,还是排查问题。这个过程本身并不复杂,但关键在于如何准确、安全地找到并终止目标进程,避免误操作。下面,我们就来梳理一下这个标准操作流程。 第一步:定

时间:2026-04-30 13:50
CentOS Java如何启动服务

CentOS Java如何启动服务

在CentOS上启动Ja va服务:两种主流方案详解 在CentOS环境中部署Ja va应用,如何让它稳定、可靠地运行并实现开机自启?这几乎是每一位系统管理员或开发者都会遇到的实操问题。今天,我们就来深入聊聊两种最主流、也最经得起考验的启动方案:Systemd和init d脚本。两种方法各有侧重,选

时间:2026-04-30 13:50
CentOS Java安全策略怎么设置

CentOS Java安全策略怎么设置

CentOS 上配置 Ja va 安全策略 一 准备与环境确认 动手之前,有几项准备工作必须到位。首先,确认 Ja va 环境已经就绪。打开终端,输入 ja va -version 命令,如果能看到版本信息,说明安装成功。如果系统提示未找到命令,那就需要先安装,例如使用命令 sudo yum ins

时间:2026-04-30 13:50
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程