不解压的方式直接更新jar包内部的内容

前言

如果线上直接更新一个class,可以不用解压,直接利用jar命令直接更新jar报的资源和内容

更新jar包内容文件

Jar 工具提供了一个 u 选项,你可以通过修改其清单或添加文件来更新现有 JAR 文件的内容。

添加文件的基本命令具有以下格式:

复制代码
jar uf jar-file input-file(s)

在此命令中:

u 选项表示你要 update (更新) 现有 JAR 文件。

f 选项表示要在命令行上指定要更新的 JAR 文件。

jar-file 是要更新的现有 JAR 文件。

input-file(s) 是一个以空格分隔的列表,其中包含要添加到 JAR 文件的一个或多个文件。

归档中已存在的文件与添加的文件具有相同的路径名将被覆盖。

创建新的 JAR 文件时,你可以选择使用 -C 选项来指示目录的更改。有关更多信息,请参阅 Creating a JAR File 部分。

TicTacToe.jar 有以下内容:

复制代码
META-INF/MANIFEST.MF
TicTacToe.class

假设你要将文件 images/new.gif 添加到 JAR 文件中。你可以通过从 images 目录的父目录发出此命令来完成此操作:

jar uf TicTacToe.jar images/new.gif

修订后的 JAR 文件将具有以下目录:

复制代码
META-INF/MANIFEST.MF
TicTacToe.class
images/new.gif

在执行命令期间,可以使用 -C 选项"更改目录"。例如:

复制代码
jar uf TicTacToe.jar -C images new.gif
相关推荐
wno7046 分钟前
Spring Boot异常处理
java·spring boot·后端
君顾123 分钟前
智慧场馆解决方案小程序系统开发实战指南
java·开发语言·智慧场馆
学习星球26 分钟前
【LeetCode算法题精讲】二分查找精讲
java·数据结构·算法·leetcode·职场和发展·图搜索
Escalating_xu32 分钟前
【Linux线程同步】从数据竞争到 mutex、条件变量与生产者消费者(上篇)
android·java·linux
承渊政道42 分钟前
10:30提交预约会不会撞上10:00的会议?我用飞算JavaAI3.9.1和3.9.9跑了四个时间段
java·springboot·ai编程·飞算javaai·java代码生成
SL_staff44 分钟前
风控规则如何从硬编码解耦?我们在 JVS-Rules 中的实践与思考
java·spring boot·设计模式
数据库技术讲堂1 小时前
从 GitOps 到数据库变更:NineData 如何打通 CI/CD 的数据库治理链路
java·数据库·ci/cd
深海呐1 小时前
Java 位运算符的实际应用:不止面试刷题,业务同样能用
java·位运算符·java 位运算·java 开发技巧·状态位设计·java 高阶用法·位运算符实战
2602_959960921 小时前
电商场景Java面试:Spring Boot、JVM、Redis、Kafka、微服务与分布式事务考点解析——谢飞机的作死面试记
java·jvm·spring boot·redis·面试题
路多辛1 小时前
一个 Go 写的全能 AI Agent,讲讲 covo-agent
java·开发语言·golang