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 包,避免文件损坏。
相关推荐
食指Shaye13 小时前
idea突然出现找不到Maven配置的jar
maven·intellij-idea·jar
码云数智-大飞14 小时前
优雅解决 IntelliJ IDEA “命令行过长”问题:使用 JAR 清单(Manifest)方式
java·intellij-idea·jar
红烧柯基15 小时前
nohup java -jar运行jar包时设置启动参数
java·开发语言·jar
丁劲犇2 天前
老旧CentOS7服务器JVM加载Jar缓慢排查:竟与NTP服务器有关
服务器·jvm·jar·java8·ntp·加载慢
Hui Baby5 天前
java -jar 启动原理
java·pycharm·jar
weixin_511255215 天前
更新jar内资源和代码
java·jar
Knight_AL6 天前
在 Windows 上安装本地 JAR 到 Maven 仓库
windows·maven·jar
你才是臭弟弟8 天前
生产环境开箱即用的“Flink + Iceberg 数据湖容器搭建”(Docker)
docker·容器·jar
zhaokuner8 天前
jar启动卡死问题分析总结
java·spring boot·jar
Java程序员威哥16 天前
【包教包会】SpringBoot依赖Jar指定位置打包:配置+原理+避坑全解析
java·开发语言·spring boot·后端·python·微服务·jar