如何替换springboot打好jar包中的class文件
更新时间:2025年12月30日 14:23:07 作者:赶路人儿
本文介绍了在Spring Boot项目中打包成jar包后,临时替换class文件的三种方法:解压-替换-重新打包、使用jar命令直接替换class、使用zip命令替换jar包
替换springboot打好jar包中的class文件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>springbot项目中 通常使用上述方法打成jar包后,直接通过java -jar来运行。
这种方式打成jar包的结构如下:

其中MANIFEST.MF内容如下:
Manifest-Version: 1.0 Spring-Boot-Classpath-Index: BOOT-INF/classpath.idx Implementation-Title: grpc_server Implementation-Version: 1.0-SNAPSHOT Spring-Boot-Layers-Index: BOOT-INF/layers.idx Start-Class: cn.edu.nuc.App Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Build-Jdk-Spec: 1.8 Spring-Boot-Version: 2.7.9 Created-By: Maven JAR Plugin 3.2.2 Main-Class: org.springframework.boot.loader.JarLauncher
有的时候我们想临时替换一个class文件做测试,该如何做呢?
1、解压-替换-重新打包
1.备份原jar: cp app.jar app.jar.bak 2.解压jar: mkdir temp cd temp jar xf ../app.jar 3.替换: cp /path/to/new/MyClass.class BOOT-INF/classes/com/example/demo/ 4.重新打包: jar cf ../app-fixed.jar * 注意:这种方式打好的包无法直接执行。因为Spring Boot的可执行jar有特殊的启动器和结构,不能直接用普通的jar cf命令打包,否则启动器会失效。推荐用Spring Boot提供的spring-boot-maven-plugin或spring-boot-gradle-plugin重新打包,或者用zip命令重新打包后再用spring-boot-loader启动。 5.使用spring-boot-loader启动: java -cp app-fixed.jar org.springframework.boot.loader.JarLauncher
2、使用jar命令直接替换class
jar uf app.jar BOOT-INF/classes/com/example/demo/MyClass.class
前提是你已经准备好新的MyClass.class文件,且路径和jar内路径一致。
注意:
- 该方法不会破坏Spring Boot启动器结构,推荐使用。
- 需要保证class文件路径正确。
3、使用zip命令替换
jar包本质是zip包,也可以用zip命令替换:
zip -u app.jar BOOT-INF/classes/com/example/demo/MyClass.class
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java8 LocalDateTime时间日期类使用实例详解
本文从 LocalDateTime 类的创建、转换、格式化与解析、计算与比较以及其他操作几个方面详细介绍了 LocalDateTime 类在 Java 8 中的使用,感兴趣的朋友跟随小编一起看看吧2024-03-03
关于java.io.EOFException产生的原因以及解决方案
文章总结:EOFException异常通常发生在尝试从空的ObjectInputStream对象中读取数据时,解决方法是在finally语句中添加判断,确保objectInputStream不为空后再进行关闭操作,在处理1.txt文件为空的情况时,捕获EOFException可以避免程序终止,并且不会抛出空指针异常2025-01-01
解决shiro 定时监听器不生效的问题 onExpiration不调用问题
这篇文章主要介绍了解决shiro 定时监听器不生效的问题 onExpiration不调用问题。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-07-07


最新评论