替换Jar包Class文件再重新打包完成快速更新 使用场景正常情况下Java项目发布流程一般是源码修改 → 编译打包 → 上传完整Jar → 部署运行但是在一些实际项目现场可能会遇到服务器网络环境较差完整Jar包较大上传耗时较长只修改少量业务逻辑客户现场不方便重新部署完整应用。这种情况下可以只将本地重新编译生成的Class文件上传到服务器然后替换Jar包内部对应文件实现快速更新。比方说现在对项目中的com/example/Test.java文件进行了修改需要更新到服务器。可以确定相对服务器的jar包版本新版本只更改了com/example/Test.java这一个文件。因为网络原因新的jar包暂时无法传输至服务器。此时我们只需要将最新版本中的Test.class文件传输到服务器进行替换并重新打包以完成更新。1.将jar包解压到当前路径# 解压命令实际上用系统自带解压工具也能解压jar-xfxx.jar2.替换class文件进入BOOT-INF/classes目录下以新修改的替换对应 Class 文件比如BOOT-INF/classes/com/example/Test.class。有些文件可能较大被分成Test1.class、Test2.class...。3.将文件重新打包成jar包# c创建一个新的 JAR 文件。# v在标准输出中显示详细的输出列出 JAR 文件中包含的所有文件。# f指定 JAR 文件的文件名。# 0设置压缩级别为 0即不压缩。这样可以确保 JAR 文件中的嵌套 JAR 文件不被压缩。# M不要为 MANIFEST.MF 文件创建条目。通常用于确保 JAR 文件中包含的 MANIFEST.MF 文件是正确的而不 # 是#创建一个新的 MANIFEST.MF 文件。# .代表当前路径下的所有文件 也可指定上体文件 如 jar -cvf0M xxx.jar BOOT-INF/ META-INF/ org/jar cvf0m test.jar META-INF/MANIFEST.MF.注意 必须需要保留原来的 META-INF/MANIFEST.MF否则可能导致java -jar无法正常启动。