centos修改jar下面的doc文件 虽然成功修改 但是不生效需要重启jar

你想在 CentOS 系统上,不重启正在运行的 jar 包的情况下,修改这个 jar 包内部的 doc 文件,这个需求在日常运维中很常见。

实现思路

jar 包本质上是一种压缩文件格式,我们可以通过jarunzip命令先提取要修改的 doc 文件,编辑完成后再用jar命令将修改后的文件重新打包回原 jar 包,整个过程无需重启 jar 进程。

具体操作步骤

1. 先查看 jar 包内 doc 文件的路径(确认文件位置)

bash

运行

复制代码
# 列出jar包内所有文件,找到目标doc文件的路径
jar tf your_app.jar | grep .doc
# 示例输出:BOOT-INF/classes/static/docs/readme.doc

替换your_app.jar为你的实际 jar 包名称,grep .doc用于过滤出所有 doc 文件,确认文件在 jar 内的具体路径。

2. 提取 doc 文件到本地

bash

运行

复制代码
# 提取指定路径的doc文件到当前目录(会保留原目录结构)
jar xf your_app.jar BOOT-INF/classes/static/docs/readme.doc
# 执行后会在当前目录生成 BOOT-INF/classes/static/docs/ 目录,里面有readme.doc

如果没有jar命令,先安装:yum install -y java-1.8.0-openjdk-devel(根据你的 JDK 版本调整)。

3. 编辑 doc 文件

bash

运行

复制代码
# 用vim编辑(如果是纯文本文档)
vim BOOT-INF/classes/static/docs/readme.doc

# 如果是Word格式的doc文件,建议先下载到本地编辑后再上传:
# 1. 下载文件到本地(用scp)
scp root@你的服务器IP:/当前目录/BOOT-INF/classes/static/docs/readme.doc 本地路径
# 2. 本地编辑完成后上传覆盖
scp 本地路径/readme.doc root@你的服务器IP:/当前目录/BOOT-INF/classes/static/docs/
4. 将修改后的 doc 文件重新打包回 jar 包

bash

运行

复制代码
# 更新jar包内的指定文件(关键:u参数表示更新,无需解压整个jar)
jar uf your_app.jar BOOT-INF/classes/static/docs/readme.doc

这个命令会直接替换 jar 包内原有 doc 文件,不会影响 jar 包其他内容,也无需重启 jar 进程。

5. 验证修改是否生效

bash

运行

复制代码
# 再次查看jar包内的doc文件内容(如果是纯文本)
jar xf your_app.jar BOOT-INF/classes/static/docs/readme.doc -O | cat
# -O 参数表示将文件输出到标准输出,直接查看内容是否修改成功

注意事项

  1. 如果 jar 包被进程占用,jar uf命令依然可以执行(因为只是修改文件内容,不影响进程读取);
  2. 如果 doc 文件是程序运行时实时读取的(比如前端页面调用),修改后立即生效;如果是程序启动时加载到内存的,可能需要触发程序重新加载(比如接口刷新),但无需重启 jar;
  3. 操作前建议备份 jar 包:cp your_app.jar your_app.jar.bak,防止操作失误。

总结

  1. 核心命令:jar xf提取文件、jar uf更新 jar 包内文件,无需解压整个 jar;
  2. 操作关键:先确认 doc 文件在 jar 内的路径,修改后用jar uf直接更新,全程无需重启 jar 进程;
  3. 安全建议:操作前备份 jar 包,避免文件损坏。
相关推荐
float_六七1 天前
Java JAR包运行与反编译全攻略
java·开发语言·jar
C++业余爱好者1 天前
Spring Boot 应用程序中的进程与线程管理:从JAR启动到请求响应的完整分析
spring boot·后端·jar
lvbinemail1 天前
svn的web管理后台服务svnWebUI
运维·前端·svn·jar
星辰离彬2 天前
2025 IDEA运行报错:运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。
java·后端·intellij-idea·jar
Sunniering2 天前
使用classfinal-maven-plugin加密 Spring Boot JAR 包配置流程
spring boot·maven·jar·classfinal插件
酸菜谭丶3 天前
SpringBoot工程如何发布第三方Jar
spring boot·后端·jar
Hello.Reader4 天前
Flink SQL 的 JAR 语句ADD JAR / SHOW JARS / REMOVE JAR(SQL CLI 实战 + 避坑指南)
sql·flink·jar
waper976 天前
nohup java -jar启动jar包错报错 地址已在使用
java·开发语言·jar
Alsn866 天前
28.IDEA 专业版创建 Spring Boot 项目并打包为 jar 运行
spring boot·intellij-idea·jar