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 包,避免文件损坏。
相关推荐
EXI-小洲2 天前
MacOS 上使用 IntelliJ IDEA 指定 Main 函数并打包为 JAR 文件
macos·intellij-idea·jar
骇客野人3 天前
Docker Compose 部署多个独立 Jar 服务完整实操步骤
docker·容器·jar
不老刘7 天前
【Java入门】Java服务部署方式全景对比:从java -jar到K8s
java·kubernetes·jar
带刺的坐椅12 天前
跳出 Fatjar 的束缚:Solon 插件的体外扩展(E-Spi)与热插拔(H-Spi)
java·jar·solon·plugin·fatjar
happymagic13 天前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
Circ.18 天前
IDEA 引入 nx JAR:原目录可用,复制后失效的原因与解决
pycharm·intellij-idea·jar
次次皮18 天前
Linux 下通过 XShell 手动更新 Tomcat 应用并重启
前端·tomcat·jar
一水20 天前
java运行排错,新码旧jar
java·开发语言·jar
拥你ω25 天前
Linux 下将 Java Jar 包配置为开机自启(使用 systemd)
java·linux·jar
tianyuanwo1 个月前
深入掌握 java -jar 命令:从基础到 Jenkins Agent 实战
java·jenkins·jar